Иллюстрированный самоучитель по 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


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




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


508 Resource Limit Is Reached

Resource Limit Is Reached

The website is temporarily unable to service your request as it exceeded resource limit. Please try again later.