ААА 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