![](https://pdfstore-manualsonline.prod.a.ki/pdfasset/2/21/2217ba13-0206-4cb5-9366-a7efb136eaab/2217ba13-0206-4cb5-9366-a7efb136eaab-bg131.png)
Vol. 2A 3-259
INSTRUCTION SET REFERENCE, A-M
DAS—Decimal Adjust AL after Subtraction
DAS—Decimal Adjust AL after Subtraction
Description
Adjusts the result of the subtraction of two packed BCD values to create a packed
BCD result. The AL register is the implied source and destination operand. The DAS
instruction is only useful when it follows a SUB instruction that subtracts (binary
subtraction) one 2-digit, packed BCD value from another and stores a byte result in
the AL register. The DAS instruction then adjusts the contents of the AL register to
contain the correct 2-digit, packed BCD result. If a decimal borrow is detected, the CF
and AF flags are set accordingly.
This instruction executes as described above in compatibility mode and legacy mode.
It is not valid in 64-bit mode.
Operation
IF 64-Bit Mode
THEN
#UD;
ELSE
old_AL ← AL;
old_CF ← CF;
CF ← 0;
IF (((AL AND 0FH) > 9) or AF
= 1)
THEN
AL ← AL
− 6;
CF ← old_CF or (Borrow from AL ← AL
− 6);
AF ← 1;
ELSE
AF ← 0;
FI;
IF ((old_AL > 99H) or (old_CF
= 1))
THEN
AL ← AL
− 60H;
CF ← 1;
FI;
FI;
Opcode Instruction 64-Bit
Mode
Compat/
Leg Mode
Description
2F DAS Invalid Valid Decimal adjust AL after
subtraction.