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


DAA Десятичная коррекция в регистре AL после сложения


Команда daa корректирует результат сложения в регистре AL двух упакованных двоично-десятичных (BCD) чисел (по одной цифре в каждом полубайте), чтобы получить пару правильных упакованных двоично-десятичных цифр. Команда используется вслед за операцией сложения упакованных двоично-десятичных чисел. Если результат сложения превышает 99, возникает перенос и устанавливается флаг CF. Команда воздействует на флаги SF, ZF, AF, PF и CF.

Пример 1


mov AL,87h ;Упакованное BCD 87

add AL,04h ;После сложения AL=8Bh

daa ;AL=91h, т.е. упакованное BCD 91


Пример 2


mov AL,87h ;Упакованное BCD 87

add AL,11h ;После сложения AL=97h

daa ;AL=97h, т.е. упакованное

;BCD 97 (в данном случае

;команда daa ничего не делает)

DAS Десятичная коррекция в регистре AL после вычитания


Команда das корректирует результат вычитания в регистре AL двух упакованных двоично-десятичных (BCD) чисел (по одной цифре в каждом полубайте), чтобы получить пару правильных упакованных десятичных цифр. Команда используется вслед за операцией вычитания упакованных двоично-десятичных чисел. Если для вычитания требовался заем, устанавливается флаг CF. Команда воздействует на флаги SF, ZF, AF, PF и CF.

Пример 1


mov AL,55h ;Упакованное BCD 55

sub AL,19h ;После вычитания AL=3Ch

das ;AL=36h, т.е. упакованное BCD 36


Пример 2


mov AL,55h ;Упакованное BCD 55

sub AL,15h ;После вычитания AL=40h

das ;AL=40h, т.е. упакованное

;BCD 40 (в данном случае

;команда das ничего не делает)

DEC Декремент (уменьшение на 1)


Команда dec вычитает 1 из операнда, в качестве которого можно указывать регистр (кроме сегментного) или ячейку памяти размером как в байт, так и в слово. Не допускается использовать в качестве операнда непосредственное значение. Операнд интерпретируется как число без знака. Команда воздействует на флаги OF, SF, ZF, AF и PF.

Пример 1


mov AX,0FFFFh

dec AX ;AX=FFFEh


Пример 2


mov CX,0

dec CX ;CX=FFFFh


Пример 3


mov CX,3500h

dec CL ;CX=35FFh


Пример 4


; В полях данных




Начало  Назад  Вперед



Книжный магазин