User Guide
General-Purpose Programming 69
24592—Rev. 3.15—November 2009 AMD64 Technology
• No Extension of 8-Bit and 16-Bit Results: 8-bit and 16-bit results leave the high 56 or 48 bits,
respectively, of 64-bit GPR destination registers unchanged.
• Undefined High 32 Bits After Mode Change: The processor does not preserve the upper 32 bits
of the 64-bit GPRs across changes from 64-bit mode to compatibility or legacy modes. In
compatibility and legacy mode, the upper 32 bits of the GPRs are undefined and not accessible to
software.
3.4.6 Invalid and Reassigned Instructions
The following general-purpose instructions are invalid in 64-bit mode:
• AAA—ASCII Adjust After Addition
• AAD—ASCII Adjust Before Division
• AAM—ASCII Adjust After Multiply
• AAS—ASCII Adjust After Subtraction
• BOUND—Check Array Bounds
• CALL (far absolute)—Procedure Call Far
• DAA—Decimal Adjust after Addition
• DAS—Decimal Adjust after Subtraction
• INTO—Interrupt to Overflow Vector
• JMP (far absolute)—Jump Far
• LDS—Load DS Segment Register
• LES—Load ES Segment Register
• POP DS—Pop Stack into DS Segment
• POP ES—Pop Stack into ES Segment
• POP SS—Pop Stack into SS Segment
• POPA, POPAD—Pop All to GPR Words or Doublewords
• PUSH CS—Push CS Segment Selector onto Stack
• PUSH DS—Push DS Segment Selector onto Stack
• PUSH ES—Push ES Segment Selector onto Stack
• PUSH SS—Push SS Segment Selector onto Stack
• PUSHA, PUSHAD—Push All to GPR Words or Doublewords
The following general-purpose instructions are invalid in long mode (64-bit mode and compatibility
mode):
• SYSENTER—System Call (use SYSCALL instead)
• SYSEXIT—System Exit (use SYSRET instead)
The opcodes for the following general-purpose instructions are reassigned in 64-bit mode: