Команды DAA и DAS осуществляют коррекцию упакованных двоично-десятичных чисел после операцй сложения и вычитания. Упакованные двоично-десятичные числа отличаются от обычных двоично-десятичных чисел тем, что каждая цифра числа хранится не в байте, а в соответствующей половине байта. То есть например число 11 будет в упакованном виде записан не как 0101h, а как 11h.

 

Команда DAA
Синтаксис: DAA
Операнды: Нет
Назначение: Десятичная коррекция после сложения
Процессор: 8086+
Флаги: Флаги AF и CF устанавливаются при наличии десятичного переноса и очищаются при его отсутствии. Флаги SF, ZF и PF устанавливаются в соответствии с результатом. Значение флага OF не определено.
Комментарий: Команда DAA производит десятичную коррекцию суммы двух упакованных двоично-десятичных чисел в регистре AL.
Эта команда обычно используется сразу после команды сложения двух таких чисел, или после команды INC.
Ограничения: Нет
Примеры:
mov	ax,19h
inc	al	;AX = 1Ah
daa		;AX = 20h
Команда DAS
Синтаксис: DAS
Операнды: Нет
Назначение: Десятичная коррекция после вычитания
Процессор: 8086+
Флаги: Флаги AF и CF устанавливаются при наличии десятичного заема и очищаются при его отсутствии. Флаги SF, ZF и PF устанавливаются в соответствии с результатом. Значение флага OF не определено.
Комментарий: Команда DAS производит десятичную коррекцию разности двух упакованных двоично-десятичных чисел в регистре AL.
Эта команда обычно используется сразу после команды вычитания двух таких чисел, или после команды DEC.
Ограничения: Нет
Примеры:
mov	ax,20h
dec	al	;AX = 1Fh
das		;AX = 19h