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


          

ъ Для определения символьных строк


ъ Для определения символьных строк используйте директиву 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


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