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

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

scs.stanford.edu
from scs.stanford.edu More from this publisher
13.07.2015 Views

AMD64 Technology 24594 Rev. 3.10 February 2005Table B-1.Operations and Operands in 64-Bit Mode (continued)Instruction andOpcode (hex) 1Type ofOperation 2DefaultOperandSize 3For 32-BitOperand Size 4For 64-BitOperand Size 4HLT—HaltF4Same aslegacy mode.Not relevant.No GPR register results.IDIV—Signed DivideF7 /7Promoted to64 bits.32 bitsZero-extends 32-bit register resultsto 64 bits.RDX:RAX containa 64-bit quotient(RAX) and 64-bitremainder (RDX).IMUL - Signed MultiplyF7 /5RDX:RAX = RAX *reg/mem64(i.e., 128-bitresult)0F AF69Promoted to64 bits.32 bitsZero-extends 32-bit register resultsto 64 bits.reg64 = reg64 *reg/mem64reg64 =reg/mem64 *imm326Breg64 =reg/mem64 *imm8IN—Input From PortE5EDSame aslegacy mode.32 bitsZero-extends 32-bit register results to64 bits.Note:1. See “General Rules for 64-Bit Mode” on page 413, for opcodes that do not appear in this table.2. The type of operation, excluding considerations of operand size or extension of results. See “General Rules for 64-Bit Mode” onpage 413 for definitions of “Promoted to 64 bits” and related topics.3. If “Type of Operation” is 64 bits, a REX prefix is needed for 64-bit operand size, unless the instruction size defaults to 64 bits. Ifthe operand size is fixed, operand-size overrides are silently ignored.4. Special actions in 64-bit mode, in addition to legacy-mode actions. Zero or sign extensions apply only to result operands, notsource operands. Unless otherwise stated, 8-bit and 16-bit results leave the high 56 or 48 bits, respectively, of 64-bit destinationregisters unchanged. Immediates and branch displacements are sign-extended to 64 bits.5. Any pointer registers (rDI, rSI) or count registers (rCX) are address-sized and default to 64 bits. For 32-bit address size, any pointerand count registers are zero-extended to 64 bits.6. The default operand size can be overridden to 16 bits with 66h prefix, but there is no 32-bit operand-size override in 64-bit mode.422 Appendix B: General-Purpose Instructions in 64-Bit Mode

24594 Rev. 3.10 February 2005 AMD64 TechnologyTable B-1.Operations and Operands in 64-Bit Mode (continued)Instruction andOpcode (hex) 1Type ofOperation 2DefaultOperandSize 3For 32-BitOperand Size 4For 64-BitOperand Size 4INC—Increment by 1FF /0Promoted to64 bits.32 bitsZero-extends 32-bit register resultsto 64 bits.40 through 47 OPCODE USED as REX PREFIX in 64-BIT MODEINS, INSW, INSD—Input String6DSame aslegacy mode.32 bitsINSD: Input String Doublewords.No GPR register results.See footnote 5INT n—Interrupt to VectorCDINT3—Interrupt to Debug VectorPromoted to64 bits.Not relevant.See “Long-Mode Interrupt ControlTransfers” in Volume 2.CCINTO - Interrupt to Overflow VectorCEINVALID IN 64-BIT MODE (invalid-opcode exception)INVD—Invalidate Internal Caches0F 08Same aslegacy mode.Not relevant.No GPR register results.INVLPG—Invalidate TLB Entry0F 01 /7Promoted to64 bits.Not relevant.No GPR register results.Note:1. See “General Rules for 64-Bit Mode” on page 413, for opcodes that do not appear in this table.2. The type of operation, excluding considerations of operand size or extension of results. See “General Rules for 64-Bit Mode” onpage 413 for definitions of “Promoted to 64 bits” and related topics.3. If “Type of Operation” is 64 bits, a REX prefix is needed for 64-bit operand size, unless the instruction size defaults to 64 bits. Ifthe operand size is fixed, operand-size overrides are silently ignored.4. Special actions in 64-bit mode, in addition to legacy-mode actions. Zero or sign extensions apply only to result operands, notsource operands. Unless otherwise stated, 8-bit and 16-bit results leave the high 56 or 48 bits, respectively, of 64-bit destinationregisters unchanged. Immediates and branch displacements are sign-extended to 64 bits.5. Any pointer registers (rDI, rSI) or count registers (rCX) are address-sized and default to 64 bits. For 32-bit address size, any pointerand count registers are zero-extended to 64 bits.6. The default operand size can be overridden to 16 bits with 66h prefix, but there is no 32-bit operand-size override in 64-bit mode.Appendix B: General-Purpose Instructions in 64-Bit Mode 423

24594 Rev. 3.10 February 2005 AMD64 TechnologyTable B-1.Operations <strong>and</strong> Oper<strong>and</strong>s in 64-Bit Mode (continued)Instruction <strong>and</strong>Opcode (hex) 1Type ofOperation 2DefaultOper<strong>and</strong>Size 3For 32-BitOper<strong>and</strong> Size 4For 64-BitOper<strong>and</strong> Size 4INC—Increment by 1FF /0Promoted to64 bits.32 bitsZero-extends 32-bit register resultsto 64 bits.40 through 47 OPCODE USED as REX PREFIX in 64-BIT MODEINS, INSW, INSD—Input String6DSame aslegacy mode.32 bitsINSD: Input String Doublewords.No GPR register results.See footnote 5INT n—Interrupt to VectorCDINT3—Interrupt to Debug VectorPromoted to64 bits.Not relevant.See “Long-Mode Interrupt ControlTransfers” in <strong>Volume</strong> 2.CCINTO - Interrupt to Overflow VectorCEINVALID IN 64-BIT MODE (invalid-opcode exception)INVD—Invalidate Internal Caches0F 08Same aslegacy mode.Not relevant.No GPR register results.INVLPG—Invalidate TLB Entry0F 01 /7Promoted to64 bits.Not relevant.No GPR register results.Note:1. See “<strong>General</strong> Rules for 64-Bit Mode” on page 413, for opcodes that do not appear in this table.2. The type of operation, excluding considerations of oper<strong>and</strong> size or extension of results. See “<strong>General</strong> Rules for 64-Bit Mode” onpage 413 for definitions of “Promoted to 64 bits” <strong>and</strong> related topics.3. If “Type of Operation” is 64 bits, a REX prefix is needed for 64-bit oper<strong>and</strong> size, unless the instruction size defaults to 64 bits. Ifthe oper<strong>and</strong> size is fixed, oper<strong>and</strong>-size overrides are silently ignored.4. Special actions in 64-bit mode, in addition to legacy-mode actions. Zero or sign extensions apply only to result oper<strong>and</strong>s, notsource oper<strong>and</strong>s. Unless otherwise stated, 8-bit <strong>and</strong> 16-bit results leave the high 56 or 48 bits, respectively, of 64-bit destinationregisters unchanged. Immediates <strong>and</strong> branch displacements are sign-extended to 64 bits.5. Any pointer registers (rDI, rSI) or count registers (rCX) are address-sized <strong>and</strong> default to 64 bits. For 32-bit address size, any pointer<strong>and</strong> count registers are zero-extended to 64 bits.6. The default oper<strong>and</strong> size can be overridden to 16 bits with 66h prefix, but there is no 32-bit oper<strong>and</strong>-size override in 64-bit mode.Appendix B: <strong>General</strong>-<strong>Purpose</strong> <strong>Instructions</strong> in 64-Bit Mode 423

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

Saved successfully!

Ooh no, something went wrong!