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: