Иллюстрированный самоучитель по Assembler

A

ААА 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 и 3 в остатке

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
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.