Справочник по языку Ассемблера IBM PC

     

AAM


(Ascii Adjust after Multiply)

ASCII-коррекция после умножения

 

Схема команды: aam

Назначение:

корректировка результата умножения двух неупакованных BCD-чисел;

преобразование двоичного числа меньшего 63h (9910) в его неупакованный BCD-эквивалент.


Алгоритм работы:

разделить значение регистра al на 10;



записать частное в регистр ah, остаток — в регистр al.

Состояние флагов после выполнения команды:

11 07 06 04 02 00
OF SF ZF AF PF CF
? ?

Применение:


Команду aam используют для коррекции результата умножения двух неупакованных BCD-чисел. Специальной команды умножения BCD-чисел нет. Поэтому BCD-числа умножаются поразрядно, как обычные двоичные числа, командой mul. Максимальное число, которое получается при таком умножении, — это 9*9=8110=5116. Отсюда понятно, что значения, для которых командой aam можно получить их двузначный BCD-эквивалент в регистре ax, находятся в дипазоне от 00h до 51h. Эту команду можно применять и для преобразования двоичного числа из регистра ax (в диапазоне от 0 до 63h) в его десятичный эквивалент(соответственно, из диапазона от 0 до 9910).

Пример 1. Умножить десятичное число 8 на 9. Подготовить результат к выводу на экран.

        mov     ah,08h  ;ah=08h         mov     al,09h  ;al= 09h         mul     ah      ;al=48h — двоичный эквивалент 72         aam             ;ah=07h,al=02h         or      ax,3030h        ;ax=3732h — ASCII-представление числа 72

Пример 2. Преобразовать двоичное число 60h в эквивалентное десятичное число.

;поместим число 60h в регистр ax         mov     ax,60h  ;ax=60h         aаm             ;ax=0906h — получили десятичный эквивалент числа 60h         or      ax,3030h        ;символьный эквивалент, можно выводить на экран

См. также: урок 8, приложение 7 и команды , , , ,



Содержание раздела