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



       

ГЛАВА 12. Арифметические операции I: Обработка двоичных данных - часть 13


ъ Используйте команды MUL или DIV для беззнаковых данных и команды IMUL или IDIV для знаковых.

ъ При делении будьте осторожны с переполнениями. Если нулевой делитель возможен, то обеспечьте проверку этой операции. Кроме того, делитель должен быть больше содержимого регистра AH (для байта) или DX (для слова).

ъ Для умножения или деления на степень двойки используйте cдвиг. Сдвиг вправо выполняется командой SHR для беззна ковых полей и командой SAR для знаковых полей. Для сдвига влево используются идентичные команды SHL и SAL.

ъ Будьте внимательны при ассемблировании по умолчанию. Например, если поле FACTOR определено как байт (DB), то команда MUL FACTOR полагает множимое в регистре AL, а команда DIV FACTOR полагает делимое в регистре AX. Если FACTOR определен как слово (DW), то команда MUL FACTOR полагает множимое в регистре AX, а команда DIV FACTOR полагает делимое в регистровой паре DX:AX.

Ассемблер для IBM PC. Глава 12 276

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

Все вопросы имеют отношение к следующим данным:

DATAX DW 0148H DW 2316H DATAY DW 0237H DW 4052H

12.1. Закодируйте команды для сложения а) слова DATAX со словом DATAY; б) двойного слова, начинающегося по адресу DATAX, с двойным словом в DATAY.

12.2. Объясните действие следующих команд:

STC MOV BX,DATAX ADC BX,DATAY

12.3. Закодируйте команды для умножения (MUL): а) слова DATAX на слово DATAY; б) двойного слова , начинающего ся по адресу DATAX, на слово DATAY.

12.4. Какой делитель, кроме нуля, вызывает ошибку переполнения?

12.5. Закодируйте команды для деления (DIV): а) слова DATAX на 23; б) двойного слова, начинающегося по адресу DATAX, на слово DATAY.

12.6. Последний пример в разделе "Сдвиг регистроврй пары DX:AX" является более эффективным по сравнению с предыдущими примерами для сдвига влево на четыре бита. Измените пример для сдвига вправо на четыре бита.

Ассемблер для IBM PC. Глава 13 1




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