Decimal Adjust after Addition                        

86/88

Y

186

Y

286

Y

386

Y

486

Y

DAA

Ovfl

?

Dir

N

Int

N

Trap

N

Sign

Y

Zero

Y

Aux

Y

Prty

Y

Carry

Y

 
    DAA corrects the result of a previous addition of two valid packed
    decimal operands (note that this result must be in AL). This
    instruction changes the content of AL so that it will contain a pair
    of valid packed decimal digits.

       Note:          Packed BCD stores one digit per nibble (4 bits); the
                      least significant digit is in the lower nibble.

                      It is not possible to apply an adjustment after
                      division or multiplication of packed BCD numbers.
                      If you need to use multiplication or division, it is
                      better to use unpacked BCD numbers.  See, for
                      example, the description of AAM (ASCII Adjust after
                      Multiply).

------------------------------------ Timing ----------------------------------

OpCode          Instruction             386     286     86
27              DAA                     4       3       4

------------------------------------ Logic -----------------------------------

        If (AL & 0Fh) > 9 or (AF = 1) then
                AL = AL + 6
                AF = 1
        else
                AF = 0
        If (AL > 9Fh) or (CF = 1) then
                AL = AL + 60h
                CF = 1
        else
                CF = 0
 
See Also DAS AAA AAS AAM AAD ADD ADC INC Flags


Copyright © 1985 to 2022 Beta Systems                            Last modified: Wednesday, January 05, 2022 .