ААА ASCII-коррекция регистра АХ после сложения

Команда ааа используется вслед за операцией сложения add в регистре AL двух неупакованных двоично-десятичных (BCD) чисел, если в АХ находится двухразрядное неупакованное двоично-десятичное число. Команда не имеет параметров. Она преобразует результат сложения в неупакованное двоично-десятичное число, младший десятичный разряд которого находится в AL. Если результат превышает 9, выполняется инкремент содержимого регистра АН. Команда воздействует на флаги AF и CF.

Пример


mov AX,0605h ; Неупакованное BCD 65

add AL,09h ;Неупакованное BCD 9, AX=060Eh

ааа ;AX=0704h, неупакованное BCD 74

AAD ASCII-коррекция регистра АХ перед делением


Команда aad используется перед операцией деления неупакованного двоично-десятичного (BCD) числа в регистре АХ на другое неупакован
ное двоично-десятичное число. Команда не имеет параметров. Она преобразует делимое в регистре АХ в двоичное число без знака, чтобы в результате деления получились правильные неупакованные двоично-десятичные числа (частное в AL, остаток в АН). Команда воздействует на флаги SF, ZF и PF.

Пример


raov AX,0207h ;Неупакованное BCD 27

mov DL,06h ;Неупакованное BCD 6

aad ;AX=001Bh=27

div DL ;AX=0304h, т.е. 4 и З в остатке

AAM ASCII-коррекция регистра АХ после умножения


Команда aam используется вслед за операцией умножения двух неупакованных двоично-десятичных чисел. Команда не имеет параметров. Она преобразует результат умножения, являющийся двоичным числом, в правильное неупакованное двоично-десятичное (BCD) число, младший разряд которого помещается в AL, а старший - в АН. Команда воздействует на флаги SF, ZF и PF.

Пример


mov AL,08h ;Неупакованное BCD 8

mov CL,07h ;Неупакованное BCD 7

mul CL ;AX=0038h=56

aam ;AX=0506h, BCD 56

AAS ASCII-коррекция регистра AL после вычитания


Команда aas используется вслед за операцией вычитания одного неупакованного двоично-десятичного числа (BCD) из другого в AL. Команда не имеет параметров. Она преобразует результат вычитания в неупакованное двоично-десятичное число. Если результат вычитания оказывается меньше 0, выполняется декремент содержимого регистра АН. Команда воздействует на флаги AF и CF; после ее выполнения AF=1, CF=1.


Пример


mov AX,0708h ;Неупакованное BCD 78

mov CL,09h ;Неупакованное BCD 9

sub AL,CL ;AX=07FFh

aas ;AX=0609h, неупакованное BCD 69