13.07.2015 Views

Volume 3: General-Purpose and System Instructions - Stanford ...

Volume 3: General-Purpose and System Instructions - Stanford ...

Volume 3: General-Purpose and System Instructions - Stanford ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

AMD64 Technology 24594 Rev. 3.10 February 2005AASASCII Adjust After SubtractionAdjusts the value in the AL register to an unpacked BCD value. Use the AASinstruction after using the SUB instruction to subtract two unpacked BCD numbers.If the value in AL is greater than 9 or the AF flag is set to 1, the instructiondecrements the value in AH, subtracts 6 from the AL register, <strong>and</strong> sets the CF <strong>and</strong> AFflags to 1. Otherwise, it clears the CF <strong>and</strong> AF flags <strong>and</strong> the AH register is unchanged.In either case, the instruction clears bits 7–4 of the AL register, leaving the correctdecimal digit in bits 3–0.Using this instruction in 64-bit mode generates an invalid-opcode exception.Mnemonic Opcode DescriptionAASRelated <strong>Instructions</strong>AAA, AAD, AAMrFLAGS Affected3FCreate an unpacked BCD number from the contents of the ALregister.(Invalid in 64-bit mode.)ID VIP VIF AC VM RF NT IOPL OF DF IF TF SF ZF AF PF CFExceptionsU U U M U M21 20 19 18 17 16 14 13–12 11 10 9 8 7 6 4 2 0Note: Bits 31–22, 15, 5, 3, <strong>and</strong> 1 are reserved. A flag set to 1 or cleared to 0 is M (modified). Unaffected flags are blank. Undefinedflags are U.VirtualException Real 8086 Protected Cause of ExceptionInvalid opcode, #UD X This instruction was executed in 64-bit mode.64 AAS

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!