Ассемблер и программирование для IBM PC



       

ГЛАВА 5. Определение Данных - часть 8


ъ Для определения символьных строк используйте директиву DB, так как ее формат допускает строки длиннее двух байт и формирует их в нормальной последовательности (слева-направо).

ъ Будьте внимательны при указании десятичных и шест. значений. Сравните, например, сложение содержимого регистра AX с десятичным 25 и с шест. 25:

ADD AX,25 ;Прибавить 25 ADD AX,25H ;Прибавить 37

ъ Помните, что директивы DW, DD и DQ записывают числовое значение в объектном коде в обратной последовательности байт.

Ассемблер для IBM PC. Глава 5 112

ъ Используйте элементы DB для операций с полурегистрами (AL, AH, BL и т.д.) и DW для операций с полными регистрами (AX, BX, CX и т.д.). Числовые элементы, определенные директивами DD и DQ имеют специальное применение.

ъ Следите за соответствием непосредственных операндов размеру регистра: однобайтовая константа - однобайтовый регистр (AL, BH), двухбайтовая константа - полный регистр (AX, BX).

ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ ------------------------------------------------------------

5.1. Какова длина в байтах для элементов данных, определен ных директивами: а) DW, б) DD, в) DT, г) DB, д) DQ?

5.2. Определите символьную строку по имени TITLE1, содержащую константу RGB Electronics.

5.3. Определите следующие числовые значения в элементах данных с именами от FLDA до FLDE: a) четырехбайтовый элемент, содержащтй шест. эквивалент десятичного числа 115; b) однобайтовый элемент, содержащий шест. эквивалент десятичного числа 25; c) двухбайтовый элемент, содержащий неопределенное значение; d) однобайтовый элемент, содержащий двоичной эквивалент десятичного числа 25; e) директиву DW, содержащую последовательные значения 16, 19, 20, 27, 30.

5.4. Покажите сгенерированный шест. объектный код для а) DB '26' и б) DB 26.

5.5. Определите ассемблерный шест. объектный код для а) DB 26H, б) DW 2645H, в) DD 25733AH, г) DQ 25733AH.

5.6. Закодируйте следующие команды с непосредственными операндами: а) загрузить 320 в регистр AX; б) сравнить поле FLDB с нулем; в) прибавить шест. 40 к содержимому регистра BX; г) вычесть шест. 40 из регистра CX; д) сдвинуть содержимое поля FLDB на один бит влево; е) сдвинуть содержимое регистра CH на один бит вправо.

5.7. Введите и ассемблируйте элементы данных и команды из вопросов 5.2, 5.3 и 5.6. Стек для этого упражнения не требуется. Также не следует выполнять компановку. Для проверки ассемблированного кода используйте отладчик DEBUG. Распечатайте LST-файл (листинг), если в результа

Ассемблер для IBM PC. Глава 5 113

те ассемблирования не будет сообщений об ошибках. Не забудте команду MODE LPT1:132,6 для установки ширины печати.

Ассемблер для IBM PC. Глава 6 123




    Содержание  Назад  Вперед