Intel 253666-024US Manuale Utente

Navigare online o scaricare Manuale Utente per Hardware Intel 253666-024US. Intel 253666-024US User Manual Manuale Utente

  • Scaricare
  • Aggiungi ai miei manuali
  • Stampa
  • Pagina
    / 760
  • Indice
  • SEGNALIBRI
  • Valutato. / 5. Basato su recensioni clienti
Vedere la pagina 0
Intel® 64 and IA-32 Architectures
Software Developer’s Manual
Volume 2A:
Instruction Set Reference, A-M
NOTE: The Intel 64 and IA-32 Architectures Software Developer's Manual
consists of five volumes: Basic Architecture, Order Number 253665;
Instruction Set Reference A-M, Order Number 253666; Instruction Set
Reference N-Z, Order Number 253667; System Programming Guide,
Part 1, Order Number 253668; System Programming Guide, Part 2,
Order Number 253669. Refer to all five volumes when evaluating your
design needs.
Order Number: 253666-024US
August 2007
Vedere la pagina 0
1 2 3 4 5 6 ... 759 760

Sommario

Pagina 1 - Software Developer’s Manual

Intel® 64 and IA-32 ArchitecturesSoftware Developer’s ManualVolume 2A:Instruction Set Reference, A-MNOTE: The Intel 64 and IA-32 Architectures Softwar

Pagina 2

CONTENTSxVol. 2APAGEPAVGB/PAVGW—Average Packed Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-61PCMPEQB/PCMPEQ

Pagina 3

3-54 Vol. 2A AND—Logical ANDINSTRUCTION SET REFERENCE, A-MDescriptionPerforms a bitwise AND operation on the destination (first) and source (second) o

Pagina 4

Vol. 2A 3-55INSTRUCTION SET REFERENCE, A-MAND—Logical AND#UD If the LOCK prefix is used but the destination is not a memory operand.Virtual-8086 Mode

Pagina 5 - Vol. 2A v

3-56 Vol. 2A ANDPD—Bitwise Logical AND of Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MANDPD—Bitwise Logical AND of Pack

Pagina 6

Vol. 2A 3-57INSTRUCTION SET REFERENCE, A-MANDPD—Bitwise Logical AND of Packed Double-Precision Floating-Point ValuesReal-Address Mode Exceptions#GP(0)

Pagina 7 - Vol. 2A vii

3-58 Vol. 2A ANDPS—Bitwise Logical AND of Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MANDPS—Bitwise Logical AND of Pack

Pagina 8

Vol. 2A 3-59INSTRUCTION SET REFERENCE, A-MANDPS—Bitwise Logical AND of Packed Single-Precision Floating-Point ValuesReal-Address Mode Exceptions#GP(0)

Pagina 9 - Vol. 2A ix

3-60 Vol. 2A ANDNPD—Bitwise Logical AND NOT of Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MANDNPD—Bitwise Logical AND N

Pagina 10

Vol. 2A 3-61INSTRUCTION SET REFERENCE, A-MANDNPD—Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values#UD If CR0.EM[bit 2] = 1.If

Pagina 11 - Vol. 2A xi

3-62 Vol. 2A ANDNPS—Bitwise Logical AND NOT of Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MANDNPS—Bitwise Logical AND N

Pagina 12

Vol. 2A 3-63INSTRUCTION SET REFERENCE, A-MANDNPS—Bitwise Logical AND NOT of Packed Single-Precision Floating-Point ValuesReal-Address Mode Exceptions#

Pagina 13 - Vol. 2A xiii

Vol. 2A xiCONTENTSPAGEPUSH—Push Word, Doubleword or Quadword Onto the Stack . . . . . . . . . . . . . . . . . . . 4-217PUSHA/PUSHAD—Push All General-P

Pagina 14

3-64 Vol. 2A ARPL—Adjust RPL Field of Segment SelectorINSTRUCTION SET REFERENCE, A-MARPL—Adjust RPL Field of Segment SelectorDescriptionCompares the R

Pagina 15 - Vol. 2A xv

Vol. 2A 3-65INSTRUCTION SET REFERENCE, A-MARPL—Adjust RPL Field of Segment SelectorELSEZF ← 0;FI;FI;Flags AffectedThe ZF flag is set to 1 if the RPL f

Pagina 16

3-66 Vol. 2A BOUND—Check Array Index Against BoundsINSTRUCTION SET REFERENCE, A-MBOUND—Check Array Index Against BoundsDescriptionBOUND determines if

Pagina 17 - Vol. 2A xvii

Vol. 2A 3-67INSTRUCTION SET REFERENCE, A-MBOUND—Check Array Index Against BoundsFlags AffectedNone.Protected Mode Exceptions#BR If the bounds test fai

Pagina 18

3-68 Vol. 2A BOUND—Check Array Index Against BoundsINSTRUCTION SET REFERENCE, A-MCompatibility Mode ExceptionsSame exceptions as in protected mode.64-

Pagina 19 - Vol. 2A xix

Vol. 2A 3-69INSTRUCTION SET REFERENCE, A-MBSF—Bit Scan ForwardBSF—Bit Scan ForwardDescriptionSearches the source operand (second operand) for the leas

Pagina 20 - CONTENTS

3-70 Vol. 2A BSF—Bit Scan ForwardINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#GP(0) If a memory operand effective address is outside the CS

Pagina 21 - ABOUT THIS MANUAL

Vol. 2A 3-71INSTRUCTION SET REFERENCE, A-MBSR—Bit Scan ReverseBSR—Bit Scan ReverseDescriptionSearches the source operand (second operand) for the most

Pagina 22 - 1-2 Vol. 2A

3-72 Vol. 2A BSR—Bit Scan ReverseINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#GP(0) If a memory operand effective address is outside the CS

Pagina 23 - 1.3 NOTATIONAL CONVENTIONS

Vol. 2A 3-73INSTRUCTION SET REFERENCE, A-MBSWAP—Byte SwapBSWAP—Byte SwapDescriptionReverses the byte order of a 32-bit or 64-bit (destination) registe

Pagina 24 - 1.3.1 Bit and Byte Order

CONTENTSxiiVol. 2APAGESYSCALL—Fast System Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Pagina 25

3-74 Vol. 2A BSWAP—Byte SwapINSTRUCTION SET REFERENCE, A-MDEST[15:8] ← TEMP[23:16];DEST[23:16] ← TEMP[15:8];DEST[31:24] ← TEMP[7:0];FI;Flags AffectedN

Pagina 26 - 1.3.5 Segmented Addressing

Vol. 2A 3-75INSTRUCTION SET REFERENCE, A-MBT—Bit TestBT—Bit TestDescriptionSelects the bit in a bit string (specified with the first operand, called t

Pagina 27 - 1.3.6 Exceptions

3-76 Vol. 2A BT—Bit TestINSTRUCTION SET REFERENCE, A-MOr, it may access 2 bytes starting from the memory address for a 16-bit operand, using this rela

Pagina 28 - 1.4 RELATED LITERATURE

Vol. 2A 3-77INSTRUCTION SET REFERENCE, A-MBT—Bit TestVirtual-8086 Mode Exceptions#GP(0) If a memory operand effective address is outside the CS, DS, E

Pagina 29 - Vol. 2A 1-9

3-78 Vol. 2A BTC—Bit Test and ComplementINSTRUCTION SET REFERENCE, A-MBTC—Bit Test and ComplementDescriptionSelects the bit in a bit string (specified

Pagina 30 - 1-10 Vol. 2A

Vol. 2A 3-79INSTRUCTION SET REFERENCE, A-MBTC—Bit Test and Complementprefix in the form of REX.W promotes operation to 64 bits. See the summary chart

Pagina 31 - INSTRUCTION FORMAT

3-80 Vol. 2A BTC—Bit Test and ComplementINSTRUCTION SET REFERENCE, A-M#AC(0) If alignment checking is enabled and an unaligned memory reference is mad

Pagina 32 - • Group 4

Vol. 2A 3-81INSTRUCTION SET REFERENCE, A-MBTR—Bit Test and ResetBTR—Bit Test and ResetDESCRIPTIONSelects the bit in a bit string (specified with the f

Pagina 33 - 2.1.2 Opcodes

3-82 Vol. 2A BTR—Bit Test and ResetINSTRUCTION SET REFERENCE, A-Mprefix in the form of REX.W promotes operation to 64 bits. See the summary chart at t

Pagina 34 - 2.1.3 ModR/M and SIB Bytes

Vol. 2A 3-83INSTRUCTION SET REFERENCE, A-MBTR—Bit Test and Reset#AC(0) If alignment checking is enabled and an unaligned memory reference is made.#UD

Pagina 35 - Vol. 2A 2-5

Vol. 2A xiiiCONTENTSPAGECHAPTER 6SAFER MODE EXTENSIONS REFERENCE6.1 OVERVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Pagina 36 - 2-6 Vol. 2A

3-84 Vol. 2A BTS—Bit Test and SetINSTRUCTION SET REFERENCE, A-MBTS—Bit Test and SetDescriptionSelects the bit in a bit string (specified with the firs

Pagina 37 - Vol. 2A 2-7

Vol. 2A 3-85INSTRUCTION SET REFERENCE, A-MBTS—Bit Test and Setprefix in the form of REX.W promotes operation to 64 bits. See the summary chart at the

Pagina 38 - 2-8 Vol. 2A

3-86 Vol. 2A BTS—Bit Test and SetINSTRUCTION SET REFERENCE, A-M#AC(0) If alignment checking is enabled and an unaligned memory reference is made.#UD

Pagina 39 - 2.2.1 REX Prefixes

Vol. 2A 3-87INSTRUCTION SET REFERENCE, A-MCALL—Call ProcedureCALL—Call ProcedureDescriptionSaves procedure linking information on the stack and branch

Pagina 40 - 2.2.1.1 Encoding

3-88 Vol. 2A CALL—Call ProcedureINSTRUCTION SET REFERENCE, A-Mthe first instruction in the called procedure. The operand can be an immediate value, a

Pagina 41 - 5UUU %EEE

Vol. 2A 3-89INSTRUCTION SET REFERENCE, A-MCALL—Call Procedureor 64 bits). In 64-bit mode the target operand will always be 64-bits because the operand

Pagina 42 - 2-12 Vol. 2A

3-90 Vol. 2A CALL—Call ProcedureINSTRUCTION SET REFERENCE, A-Msegment selector for the new code segment and the new instruction pointer (offset) from

Pagina 43 - 2.2.1.3 Displacement

Vol. 2A 3-91INSTRUCTION SET REFERENCE, A-MCALL—Call ProcedureFar Calls in Compatibility Mode. When the processor is operating in compatibility mode, t

Pagina 44 - 2.2.1.5 Immediates

3-92 Vol. 2A CALL—Call ProcedureINSTRUCTION SET REFERENCE, A-Mpushes the segment selector and stack pointer for the calling procedure’s stack and the

Pagina 45 - • Near branches

Vol. 2A 3-93INSTRUCTION SET REFERENCE, A-MCALL—Call ProcedureNote that when using a call gate to perform a far call to a segment at the same priv-ileg

Pagina 46

CONTENTSxivVol. 2APAGEA.5.2.3 Escape Opcodes with DA as First Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-25A

Pagina 47 - CHAPTER 3

3-94 Vol. 2A CALL—Call ProcedureINSTRUCTION SET REFERENCE, A-MTHENtempRIP ← DEST; (* DEST is r/m64 *)IF stack not large enough for a 8-byte return add

Pagina 48 - 3-2 Vol. 2A

Vol. 2A 3-95INSTRUCTION SET REFERENCE, A-MCALL—Call ProcedurePush(IP);CS ← DEST[31:16]; (* DEST is ptr16:16 or [m16:16] *)EIP ← DEST[15:0]; (* DEST is

Pagina 49

3-96 Vol. 2A CALL—Call ProcedureINSTRUCTION SET REFERENCE, A-MtempEIP ← tempEIP AND 0000FFFFH; FI; (* Clear upper 16 bits *)IF (EFER.LMA = 0 or target

Pagina 50 - 3-4 Vol. 2A

Vol. 2A 3-97INSTRUCTION SET REFERENCE, A-MCALL—Call ProceduretempEIP ← DEST(Offset);IF OperandSize = 16THEN tempEIP ← tempEIP AND 0000FFFFH; FI; (* Cl

Pagina 51 - Vol. 2A 3-5

3-98 Vol. 2A CALL—Call ProcedureINSTRUCTION SET REFERENCE, A-MTHEN #GP(code segment selector); FI;Read code segment descriptor;IF code-segment segment

Pagina 52 - 3-6 Vol. 2A

Vol. 2A 3-99INSTRUCTION SET REFERENCE, A-MCALL—Call Procedureor stack segment DPL ≠ DPL of code segment or stack segment is not awritable data segment

Pagina 53 - 3.1.1.7 Operation Section

3-100 Vol. 2A CALL—Call ProcedureINSTRUCTION SET REFERENCE, A-M(* Segment descriptor information also loaded *)Push(oldSS:oldESP); (* From calling pro

Pagina 54 - 3-8 Vol. 2A

Vol. 2A 3-101INSTRUCTION SET REFERENCE, A-MCALL—Call ProcedureTHEN #GP(task gate selector); FI;IF task gate not present THEN #NP(task gate selector);

Pagina 55 - Vol. 2A 3-9

3-102 Vol. 2A CALL—Call ProcedureINSTRUCTION SET REFERENCE, A-M#GP(selector) If a code segment or gate or TSS selector index is outside descriptor tab

Pagina 56 - 3-10 Vol. 2A

Vol. 2A 3-103INSTRUCTION SET REFERENCE, A-MCALL—Call ProcedureIf the RPL of the new stack segment selector in the TSS is not equal to the DPL of the c

Pagina 57 - Vol. 2A 3-11

Vol. 2A xvCONTENTSPAGEFIGURESFigure 1-1. Bit and Byte Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Pagina 58 - Technology Intrinsics

3-104 Vol. 2A CALL—Call ProcedureINSTRUCTION SET REFERENCE, A-MIf code segment or 64-bit call gate overlaps non-canonical space. If the segment descri

Pagina 59 - Vol. 2A 3-13

Vol. 2A 3-105INSTRUCTION SET REFERENCE, A-MCBW/CWDE/CDQE—Convert Byte to Word/Convert Word to Doubleword/Convert Double-word to QuadwordCBW/CWDE/CDQE—

Pagina 60 - 3-14 Vol. 2A

3-106 Vol. 2A CLC—Clear Carry FlagINSTRUCTION SET REFERENCE, A-MCLC—Clear Carry FlagDescriptionClears the CF flag in the EFLAGS register. Operation is

Pagina 61 - Vol. 2A 3-15

Vol. 2A 3-107INSTRUCTION SET REFERENCE, A-MCLD—Clear Direction FlagCLD—Clear Direction FlagDescriptionClears the DF flag in the EFLAGS register. When

Pagina 62 - 3-16 Vol. 2A

3-108 Vol. 2A CLFLUSH—Flush Cache LineINSTRUCTION SET REFERENCE, A-MCLFLUSH—Flush Cache LineDescriptionInvalidates the cache line that contains the li

Pagina 63 - Vol. 2A 3-17

Vol. 2A 3-109INSTRUCTION SET REFERENCE, A-MCLFLUSH—Flush Cache LineOperationFlush_Cache_Line(SRC);Intel C/C++ Compiler Intrinsic EquivalentsCLFLUSH vo

Pagina 64 - 3.2 INSTRUCTIONS (A-M)

3-110 Vol. 2A CLI — Clear Interrupt FlagINSTRUCTION SET REFERENCE, A-MCLI — Clear Interrupt FlagDescriptionIf protected-mode virtual interrupts are no

Pagina 65

Vol. 2A 3-111INSTRUCTION SET REFERENCE, A-MCLI — Clear Interrupt FlagTHENIF IOPL ← CPLTHENIF ← 0; (* Reset Interrupt Flag *)ELSEIF ((IOPL < CPL) an

Pagina 66

3-112 Vol. 2A CLI — Clear Interrupt FlagINSTRUCTION SET REFERENCE, A-MVirtual-8086 Mode Exceptions#GP(0) If the CPL is greater (has less privilege) t

Pagina 67

Vol. 2A 3-113INSTRUCTION SET REFERENCE, A-MCLTS—Clear Task-Switched Flag in CR0CLTS—Clear Task-Switched Flag in CR0DescriptionClears the task-switched

Pagina 68

CONTENTSxviVol. 2APAGETABLESTable 2-1. 16-Bit Addressing Forms with the ModR/M Byte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6T

Pagina 69

3-114 Vol. 2A CLTS—Clear Task-Switched Flag in CR0INSTRUCTION SET REFERENCE, A-MCompatibility Mode ExceptionsSame exceptions as in protected mode.64-B

Pagina 70

Vol. 2A 3-115INSTRUCTION SET REFERENCE, A-MCMC—Complement Carry FlagCMC—Complement Carry FlagDescriptionComplements the CF flag in the EFLAGS register

Pagina 71

3-116 Vol. 2A CMOVcc—Conditional MoveINSTRUCTION SET REFERENCE, A-MCMOVcc—Conditional MoveOpcode Instruction 64-Bit ModeCompat/Leg ModeDescription0F 4

Pagina 72

Vol. 2A 3-117INSTRUCTION SET REFERENCE, A-MCMOVcc—Conditional MoveOpcode Instruction 64-Bit ModeCompat/Leg ModeDescription0F 4D /r CMOVGE r32, r/m32 V

Pagina 73 - ADC—Add with Carry

3-118 Vol. 2A CMOVcc—Conditional MoveINSTRUCTION SET REFERENCE, A-MOpcode Instruction 64-Bit ModeCompat/Leg ModeDescription0F 43 /r CMOVNC r16, r/m16

Pagina 74

Vol. 2A 3-119INSTRUCTION SET REFERENCE, A-MCMOVcc—Conditional MoveOpcode Instruction 64-Bit ModeCompat/Leg ModeDescriptionREX.W + 0F 4B /r CMOVNP r64,

Pagina 75

3-120 Vol. 2A CMOVcc—Conditional MoveINSTRUCTION SET REFERENCE, A-MDescriptionThe CMOVcc instructions check the state of one or more of the status fla

Pagina 76

Vol. 2A 3-121INSTRUCTION SET REFERENCE, A-MCMOVcc—Conditional MoveDEST ← temp;FI;FI;Flags AffectedNone.Protected Mode Exceptions#GP(0) If a memory ope

Pagina 77

3-122 Vol. 2A CMOVcc—Conditional MoveINSTRUCTION SET REFERENCE, A-M64-Bit Mode Exceptions#SS(0) If a memory address referencing the SS segment is in a

Pagina 78

Vol. 2A 3-123INSTRUCTION SET REFERENCE, A-MCMP—Compare Two OperandsCMP—Compare Two OperandsOpcode Instruction 64-Bit ModeCompat/Leg ModeDescription3C

Pagina 79

Vol. 2A xviiCONTENTSPAGETable 3-38. FPTAN Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Pagina 80

3-124 Vol. 2A CMP—Compare Two OperandsINSTRUCTION SET REFERENCE, A-MDescriptionCompares the first source operand with the second source operand and se

Pagina 81 - Vol. 2A 3-35

Vol. 2A 3-125INSTRUCTION SET REFERENCE, A-MCMP—Compare Two OperandsVirtual-8086 Mode Exceptions#GP(0) If a memory operand effective address is outside

Pagina 82

3-126 Vol. 2A CMPPD—Compare Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MCMPPD—Compare Packed Double-Precision Floating-

Pagina 83

Vol. 2A 3-127INSTRUCTION SET REFERENCE, A-MCMPPD—Compare Packed Double-Precision Floating-Point ValuesThe unordered relationship is true when at least

Pagina 84

3-128 Vol. 2A CMPPD—Compare Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MThe greater-than relations that the processor d

Pagina 85 - Vol. 2A 3-39

Vol. 2A 3-129INSTRUCTION SET REFERENCE, A-MCMPPD—Compare Packed Double-Precision Floating-Point ValuesCMPPD for inequality __m128d _mm_cmpneq_pd(__m12

Pagina 86

3-130 Vol. 2A CMPPD—Compare Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#UD If an unmasked SIMD floating-point excepti

Pagina 87 - Vol. 2A 3-41

Vol. 2A 3-131INSTRUCTION SET REFERENCE, A-MCMPPS—Compare Packed Single-Precision Floating-Point ValuesCMPPS—Compare Packed Single-Precision Floating-P

Pagina 88

3-132 Vol. 2A CMPPS—Compare Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MThe greater-than relations not implemented by t

Pagina 89

Vol. 2A 3-133INSTRUCTION SET REFERENCE, A-MCMPPS—Compare Packed Single-Precision Floating-Point ValuesTHEN DEST95:64] ← FFFFFFFFH;ELSE DEST[95:64] ← 0

Pagina 90

CONTENTSxviiiVol. 2APAGETable A-1. Superscripts Utilized in Opcode Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Pagina 91

3-134 Vol. 2A CMPPS—Compare Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MIf CPUID.01H:EDX.SSE[bit 25] = 0.If the LOCK pr

Pagina 92 - xmm2/m128[63:0];

Vol. 2A 3-135INSTRUCTION SET REFERENCE, A-MCMPPS—Compare Packed Single-Precision Floating-Point Values#UD If an unmasked SIMD floating-point exceptio

Pagina 93

3-136 Vol. 2A CMPS/CMPSB/CMPSW/CMPSD/CMPSQ—Compare String OperandsINSTRUCTION SET REFERENCE, A-MCMPS/CMPSB/CMPSW/CMPSD/CMPSQ—Compare String OperandsOp

Pagina 94

Vol. 2A 3-137INSTRUCTION SET REFERENCE, A-MCMPS/CMPSB/CMPSW/CMPSD/CMPSQ—Compare String OperandsDescriptionCompares the byte, word, doubleword, or quad

Pagina 95

3-138 Vol. 2A CMPS/CMPSB/CMPSW/CMPSD/CMPSQ—Compare String OperandsINSTRUCTION SET REFERENCE, A-MRDI) registers are assumed by the processor to specify

Pagina 96

Vol. 2A 3-139INSTRUCTION SET REFERENCE, A-MCMPS/CMPSB/CMPSW/CMPSD/CMPSQ—Compare String Operands(R|E)DI ← (R|E)DI – 2; FI;ELSE IF (Doubleword compariso

Pagina 97

3-140 Vol. 2A CMPS/CMPSB/CMPSW/CMPSD/CMPSQ—Compare String OperandsINSTRUCTION SET REFERENCE, A-M(E)SI ← (E)SI – 4; (E)DI ← (E)DI – 4; FI;FI;FI;Flags A

Pagina 98

Vol. 2A 3-141INSTRUCTION SET REFERENCE, A-MCMPS/CMPSB/CMPSW/CMPSD/CMPSQ—Compare String Operands64-Bit Mode Exceptions#SS(0) If a memory address refere

Pagina 99 - AND—Logical AND

3-142 Vol. 2A CMPSD—Compare Scalar Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MCMPSD—Compare Scalar Double-Precision Floating-

Pagina 100 - Real-Address Mode Exceptions

Vol. 2A 3-143INSTRUCTION SET REFERENCE, A-MCMPSD—Compare Scalar Double-Precision Floating-Point ValuesThe greater-than relations not implemented in th

Pagina 101 - 64-Bit Mode Exceptions

Vol. 2A xixCONTENTSPAGETable B-23. Format and Encoding of SSE Cacheability & Memory Ordering Instructions. . . . . .B-67Table B-24. Encoding of Gr

Pagina 102 - Point Values

3-144 Vol. 2A CMPSD—Compare Scalar Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MCMPSD for greater-than-or-equal__m128d _mm_cmpg

Pagina 103

Vol. 2A 3-145INSTRUCTION SET REFERENCE, A-MCMPSD—Compare Scalar Double-Precision Floating-Point ValuesIf CR4.OSFXSR[bit 9] = 0.If CPUID.01H:EDX.SSE2[b

Pagina 104

3-146 Vol. 2A CMPSS—Compare Scalar Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MCMPSS—Compare Scalar Single-Precision Floating-

Pagina 105

Vol. 2A 3-147INSTRUCTION SET REFERENCE, A-MCMPSS—Compare Scalar Single-Precision Floating-Point ValuesThe greater-than relations not implemented in th

Pagina 106 - Floating-Point Values

3-148 Vol. 2A CMPSS—Compare Scalar Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MCMPSS for less-than __m128 _mm_cmplt_ss(__m128

Pagina 107

Vol. 2A 3-149INSTRUCTION SET REFERENCE, A-MCMPSS—Compare Scalar Single-Precision Floating-Point Values#UD If an unmasked SIMD floating-point exceptio

Pagina 108

3-150 Vol. 2A CMPXCHG—Compare and ExchangeINSTRUCTION SET REFERENCE, A-MCMPXCHG—Compare and ExchangeDescriptionCompares the value in the AL, AX, EAX,

Pagina 109

Vol. 2A 3-151INSTRUCTION SET REFERENCE, A-MCMPXCHG—Compare and ExchangeIn 64-bit mode, the instruction’s default operation size is 32 bits. Use of the

Pagina 110

3-152 Vol. 2A CMPXCHG—Compare and ExchangeINSTRUCTION SET REFERENCE, A-MReal-Address Mode Exceptions#GP If a memory operand effective address is outsi

Pagina 111 - Vol. 2A 3-65

Vol. 2A 3-153INSTRUCTION SET REFERENCE, A-MCMPXCHG8B/CMPXCHG16B—Compare and Exchange BytesCMPXCHG8B/CMPXCHG16B—Compare and Exchange BytesDescriptionCo

Pagina 112

ii Vol. 2AINFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE,EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY

Pagina 113

CONTENTSxxVol. 2APAGE

Pagina 114

3-154 Vol. 2A CMPXCHG8B/CMPXCHG16B—Compare and Exchange BytesINSTRUCTION SET REFERENCE, A-MOperationIF (64-Bit Mode and OperandSize = 64)THENIF (RDX:R

Pagina 115 - BSF—Bit Scan Forward

Vol. 2A 3-155INSTRUCTION SET REFERENCE, A-MCMPXCHG8B/CMPXCHG16B—Compare and Exchange Bytes#SS If a memory operand effective address is outside the SS

Pagina 116

3-156 Vol. 2A COMISD—Compare Scalar Ordered Double-Precision Floating-Point Values and SetEFLAGSINSTRUCTION SET REFERENCE, A-MCOMISD—Compare Scalar Or

Pagina 117 - BSR—Bit Scan Reverse

Vol. 2A 3-157INSTRUCTION SET REFERENCE, A-MCOMISD—Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGSint _mm_comile_sd (__m12

Pagina 118

3-158 Vol. 2A COMISD—Compare Scalar Ordered Double-Precision Floating-Point Values and SetEFLAGSINSTRUCTION SET REFERENCE, A-MVirtual-8086 Mode Except

Pagina 119 - BSWAP—Byte Swap

Vol. 2A 3-159INSTRUCTION SET REFERENCE, A-MCOMISS—Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGSCOMISS—Compare Scalar Or

Pagina 120

3-160 Vol. 2A COMISS—Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGSINSTRUCTION SET REFERENCE, A-Mint _mm_comile_ss (__m1

Pagina 121 - BT—Bit Test

Vol. 2A 3-161INSTRUCTION SET REFERENCE, A-MCOMISS—Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGSVirtual-8086 Mode Except

Pagina 122

3-162 Vol. 2A CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-MCPUID—CPU IdentificationDescriptionThe ID flag (bit 21) in the EFLAGS register ind

Pagina 123

Vol. 2A 3-163INSTRUCTION SET REFERENCE, A-MCPUID—CPU IdentificationSee also: “Serializing Instructions” in Chapter 7, “Multiple-Processor Management,”

Pagina 124 - BTC—Bit Test and Complement

Vol. 2A 1-1CHAPTER 1ABOUT THIS MANUALThe Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volumes 2A & 2B: Instruction Set Reference

Pagina 125

3-164 Vol. 2A CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-MCPUID leaves > 3 < 80000000 are visible only when IA32_MISC_ENABLES.BOOT_NT4

Pagina 126

Vol. 2A 3-165INSTRUCTION SET REFERENCE, A-MCPUID—CPU IdentificationMONITOR/MWAIT Leaf 5H EAX Bits 15-00: Smallest monitor-line size in bytes (default

Pagina 127 - BTR—Bit Test and Reset

3-166 Vol. 2A CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-M0AH EAX Bits 07 - 00: Version ID of architectural performance monitoringBits 15- 0

Pagina 128

Vol. 2A 3-167INSTRUCTION SET REFERENCE, A-MCPUID—CPU IdentificationEDX Bits 10-0: ReservedBit 11: SYSCALL/SYSRET available (when in 64-bit mode)Bits 1

Pagina 129

3-168 Vol. 2A CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-MINPUT EAX = 0: Returns CPUID’s Highest Value for Basic Processor Information and t

Pagina 130 - BTS—Bit Test and Set

Vol. 2A 3-169INSTRUCTION SET REFERENCE, A-MCPUID—CPU IdentificationIA32_BIOS_SIGN_ID Returns Microcode Update SignatureFor processors that support the

Pagina 131

3-170 Vol. 2A CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-MSee Table 3-14 for available processor type values. Stepping IDs are provided as n

Pagina 132

Vol. 2A 3-171INSTRUCTION SET REFERENCE, A-MCPUID—CPU Identification(* Right justify and zero-extend 4-bit field. *)FI;(* Show Display_Family as HEX fi

Pagina 133 - CALL—Call Procedure

3-172 Vol. 2A CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-M Figure 3-6. Feature Information Returned in the ECX RegisterOM16524bCNXT-ID — L1

Pagina 134

Vol. 2A 3-173INSTRUCTION SET REFERENCE, A-MCPUID—CPU IdentificationTable 3-15. Feature Information Returned in the ECX Register Bit # Mnemonic Desc

Pagina 135 - Vol. 2A 3-89

1-2 Vol. 2AABOUT THIS MANUAL• Intel® Core™2 Duo processor• Intel® Core™2 Quad processor• Intel® Xeon® processor 3000, 3200 series• Intel® Xeon® proces

Pagina 136

3-174 Vol. 2A CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-M21 - 22 Reserved Reserved23 POPCNT A value of 1 indicates that the processor suppo

Pagina 137 - Vol. 2A 3-91

Vol. 2A 3-175INSTRUCTION SET REFERENCE, A-MCPUID—CPU IdentificationTable 3-16. More on Feature Information Returned in the EDX RegisterBit # Mnemoni

Pagina 138 - -byte call gate

3-176 Vol. 2A CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-M13 PGE PTE Global Bit. The global bit in page directory entries (PDEs) and page t

Pagina 139

Vol. 2A 3-177INSTRUCTION SET REFERENCE, A-MCPUID—CPU IdentificationINPUT EAX = 2: Cache and TLB Information Returned in EAX, EBX, ECX, EDXWhen CPUID e

Pagina 140 - = 16 *)

3-178 Vol. 2A CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-MTable 3-17. Encoding of Cache and TLB Descriptors Descriptor Value Cache or TLB D

Pagina 141 - Vol. 2A 3-95

Vol. 2A 3-179INSTRUCTION SET REFERENCE, A-MCPUID—CPU Identification56H Data TLB0: 4 MByte pages, 4-way set associative, 16 entries57H Data TLB0: 4 KBy

Pagina 142 - ≠ CPL)

3-180 Vol. 2A CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-MExample 3-1. Example of Cache and TLB InterpretationThe first member of the famil

Pagina 143 - Vol. 2A 3-97

Vol. 2A 3-181INSTRUCTION SET REFERENCE, A-MCPUID—CPU Identificationquery maximum number of cores per physical package by executing CPUID with EAX=4 an

Pagina 144 - ≠ DPL of code segment

3-182 Vol. 2A CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-MThis method (introduced with Pentium 4 processors) returns an ASCII brand identifi

Pagina 145 - Vol. 2A 3-99

Vol. 2A 3-183INSTRUCTION SET REFERENCE, A-MCPUID—CPU IdentificationTable 3-18 shows the brand string that is returned by the first processor in the Pe

Pagina 146

Vol. 2A 1-3ABOUT THIS MANUALChapter 1 — About This Manual. Gives an overview of all five volumes of the Intel® 64 and IA-32 Architectures Software Dev

Pagina 147

3-184 Vol. 2A CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-MThe Processor Brand Index MethodThe brand index method (introduced with Pentium® I

Pagina 148

Vol. 2A 3-185INSTRUCTION SET REFERENCE, A-MCPUID—CPU Identificationdo not support the brand identification feature. Starting with processor signature

Pagina 149

3-186 Vol. 2A CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-MIA-32 Architecture CompatibilityCPUID is not supported in early models of the Inte

Pagina 150

Vol. 2A 3-187INSTRUCTION SET REFERENCE, A-MCPUID—CPU IdentificationBREAKEAX = 4H:EAX ← Deterministic Cache Parameters Leaf; (* See Table 3-12. *)EBX ←

Pagina 151 - Vol. 2A 3-105

3-188 Vol. 2A CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-MEAX = 80000002H:EAX ← Processor Brand String; EBX ← Processor Brand String, contin

Pagina 152 - CLC—Clear Carry Flag

Vol. 2A 3-189INSTRUCTION SET REFERENCE, A-MCPUID—CPU IdentificationEAX ← Reserved; (* Information returned for highest basic information leaf. *)EBX ←

Pagina 153 - CLD—Clear Direction Flag

3-190 Vol. 2A CVTDQ2PD—Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MCVTDQ2PD—Conve

Pagina 154 - CLFLUSH—Flush Cache Line

Vol. 2A 3-191INSTRUCTION SET REFERENCE, A-MCVTDQ2PD—Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point ValuesIf CPUID.01H:ED

Pagina 155 - Vol. 2A 3-109

3-192 Vol. 2A CVTDQ2PS—Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MCVTDQ2PS—Conve

Pagina 156 - CLI — Clear Interrupt Flag

Vol. 2A 3-193INSTRUCTION SET REFERENCE, A-MCVTDQ2PS—Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point Values#NM If CR0.TS[b

Pagina 157 - < 3) AND (VME = 1)

1-4 Vol. 2AABOUT THIS MANUAL1.3.1 Bit and Byte OrderIn illustrations of data structures in memory, smaller addresses appear toward the bottom of the

Pagina 158

3-194 Vol. 2A CVTDQ2PS—Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#NM If CR0.TS[

Pagina 159 - Vol. 2A 3-113

Vol. 2A 3-195INSTRUCTION SET REFERENCE, A-MCVTPD2DQ—Convert Packed Double-Precision Floating-Point Values to Packed Double-word IntegersCVTPD2DQ—Conve

Pagina 160

3-196 Vol. 2A CVTPD2DQ—Convert Packed Double-Precision Floating-Point Values to Packed Double-word IntegersINSTRUCTION SET REFERENCE, A-MIf a memory o

Pagina 161 - CMC—Complement Carry Flag

Vol. 2A 3-197INSTRUCTION SET REFERENCE, A-MCVTPD2DQ—Convert Packed Double-Precision Floating-Point Values to Packed Double-word Integers#GP(0) If the

Pagina 162 - CMOVcc—Conditional Move

3-198 Vol. 2A CVTPD2PI—Convert Packed Double-Precision Floating-Point Values to Packed Double-word IntegersINSTRUCTION SET REFERENCE, A-MCVTPD2PI—Conv

Pagina 163 - Vol. 2A 3-117

Vol. 2A 3-199INSTRUCTION SET REFERENCE, A-MCVTPD2PI—Convert Packed Double-Precision Floating-Point Values to Packed Double-word IntegersProtected Mode

Pagina 164

3-200 Vol. 2A CVTPD2PI—Convert Packed Double-Precision Floating-Point Values to Packed Double-word IntegersINSTRUCTION SET REFERENCE, A-MCompatibility

Pagina 165 - Vol. 2A 3-119

Vol. 2A 3-201INSTRUCTION SET REFERENCE, A-MCVTPD2PS—Convert Packed Double-Precision Floating-Point Values to Packed Single-Precision Floating-Point Va

Pagina 166

3-202 Vol. 2A CVTPD2PS—Convert Packed Double-Precision Floating-Point Values to Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE

Pagina 167

Vol. 2A 3-203INSTRUCTION SET REFERENCE, A-MCVTPD2PS—Convert Packed Double-Precision Floating-Point Values to Packed Single-Precision Floating-Point Va

Pagina 168

Vol. 2A 1-5ABOUT THIS MANUAL1.3.2 Reserved Bits and Software CompatibilityIn many register and memory layout descriptions, certain bits are marked as

Pagina 169 - CMP—Compare Two Operands

3-204 Vol. 2A CVTPI2PD—Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MCVTPI2PD—Conve

Pagina 170

Vol. 2A 3-205INSTRUCTION SET REFERENCE, A-MCVTPI2PD—Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point ValuesProtected Mode

Pagina 171

3-206 Vol. 2A CVTPI2PD—Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#MF If there

Pagina 172

Vol. 2A 3-207INSTRUCTION SET REFERENCE, A-MCVTPI2PS—Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point ValuesCVTPI2PS—Conver

Pagina 173 - Vol. 2A 3-127

3-208 Vol. 2A CVTPI2PS—Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#PF(fault-code

Pagina 174

Vol. 2A 3-209INSTRUCTION SET REFERENCE, A-MCVTPI2PS—Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point Values64-Bit Mode Exc

Pagina 175

3-210 Vol. 2A CVTPS2DQ—Convert Packed Single-Precision Floating-Point Values to Packed Double-word IntegersINSTRUCTION SET REFERENCE, A-MCVTPS2DQ—Conv

Pagina 176

Vol. 2A 3-211INSTRUCTION SET REFERENCE, A-MCVTPS2DQ—Convert Packed Single-Precision Floating-Point Values to Packed Double-word Integers#SS(0) For an

Pagina 177

3-212 Vol. 2A CVTPS2DQ—Convert Packed Single-Precision Floating-Point Values to Packed Double-word IntegersINSTRUCTION SET REFERENCE, A-MIf memory ope

Pagina 178

Vol. 2A 3-213INSTRUCTION SET REFERENCE, A-MCVTPS2PD—Convert Packed Single-Precision Floating-Point Values to Packed Double-Precision Floating-Point Va

Pagina 179

1-6 Vol. 2AABOUT THIS MANUAL1.3.3 Instruction OperandsWhen instructions are represented symbolically, a subset of the IA-32 assembly language is used.

Pagina 180

3-214 Vol. 2A CVTPS2PD—Convert Packed Single-Precision Floating-Point Values to Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE

Pagina 181 - Vol. 2A 3-135

Vol. 2A 3-215INSTRUCTION SET REFERENCE, A-MCVTPS2PD—Convert Packed Single-Precision Floating-Point Values to Packed Double-Precision Floating-Point Va

Pagina 182

3-216 Vol. 2A CVTPS2PI—Convert Packed Single-Precision Floating-Point Values to Packed Double-word IntegersINSTRUCTION SET REFERENCE, A-MCVTPS2PI—Conv

Pagina 183

Vol. 2A 3-217INSTRUCTION SET REFERENCE, A-MCVTPS2PI—Convert Packed Single-Precision Floating-Point Values to Packed Double-word IntegersProtected Mode

Pagina 184

3-218 Vol. 2A CVTPS2PI—Convert Packed Single-Precision Floating-Point Values to Packed Double-word IntegersINSTRUCTION SET REFERENCE, A-MCompatibility

Pagina 185 - Vol. 2A 3-139

Vol. 2A 3-219INSTRUCTION SET REFERENCE, A-MCVTSD2SI—Convert Scalar Double-Precision Floating-Point Value to Doubleword IntegerCVTSD2SI—Convert Scalar

Pagina 186

3-220 Vol. 2A CVTSD2SI—Convert Scalar Double-Precision Floating-Point Value to Doubleword IntegerINSTRUCTION SET REFERENCE, A-MSIMD Floating-Point Exc

Pagina 187

Vol. 2A 3-221INSTRUCTION SET REFERENCE, A-MCVTSD2SI—Convert Scalar Double-Precision Floating-Point Value to Doubleword IntegerCompatibility Mode Excep

Pagina 188

3-222 Vol. 2A CVTSD2SS—Convert Scalar Double-Precision Floating-Point Value to Scalar Single-Preci-sion Floating-Point ValueINSTRUCTION SET REFERENCE,

Pagina 189

Vol. 2A 3-223INSTRUCTION SET REFERENCE, A-MCVTSD2SS—Convert Scalar Double-Precision Floating-Point Value to Scalar Single-Preci-sion Floating-Point Va

Pagina 190

Vol. 2A 1-7ABOUT THIS MANUALFor example, a program can keep its code (instructions) and stack in separate segments. Code addresses would always refer

Pagina 191

3-224 Vol. 2A CVTSD2SS—Convert Scalar Double-Precision Floating-Point Value to Scalar Single-Preci-sion Floating-Point ValueINSTRUCTION SET REFERENCE,

Pagina 192

Vol. 2A 3-225INSTRUCTION SET REFERENCE, A-MCVTSI2SD—Convert Doubleword Integer to Scalar Double-Precision Floating-Point ValueCVTSI2SD—Convert Doublew

Pagina 193

3-226 Vol. 2A CVTSI2SD—Convert Doubleword Integer to Scalar Double-Precision Floating-Point ValueINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptio

Pagina 194

Vol. 2A 3-227INSTRUCTION SET REFERENCE, A-MCVTSI2SD—Convert Doubleword Integer to Scalar Double-Precision Floating-Point Value64-Bit Mode Exceptions#S

Pagina 195

3-228 Vol. 2A CVTSI2SS—Convert Doubleword Integer to Scalar Single-Precision Floating-Point ValueINSTRUCTION SET REFERENCE, A-MCVTSI2SS—Convert Double

Pagina 196 - CMPXCHG—Compare and Exchange

Vol. 2A 3-229INSTRUCTION SET REFERENCE, A-MCVTSI2SS—Convert Doubleword Integer to Scalar Single-Precision Floating-Point ValueSIMD Floating-Point Exce

Pagina 197

3-230 Vol. 2A CVTSI2SS—Convert Doubleword Integer to Scalar Single-Precision Floating-Point ValueINSTRUCTION SET REFERENCE, A-MCompatibility Mode Exce

Pagina 198

Vol. 2A 3-231INSTRUCTION SET REFERENCE, A-MCVTSS2SD—Convert Scalar Single-Precision Floating-Point Value to Scalar Double-Preci-sion Floating-Point Va

Pagina 199

3-232 Vol. 2A CVTSS2SD—Convert Scalar Single-Precision Floating-Point Value to Scalar Double-Preci-sion Floating-Point ValueINSTRUCTION SET REFERENCE,

Pagina 200

Vol. 2A 3-233INSTRUCTION SET REFERENCE, A-MCVTSS2SD—Convert Scalar Single-Precision Floating-Point Value to Scalar Double-Preci-sion Floating-Point Va

Pagina 201

1-8 Vol. 2AABOUT THIS MANUAL1.4 RELATED LITERATURELiterature related to Intel 64 and IA-32 processors is listed on-line at: http://developer.intel.com

Pagina 202 - Values and Set EFLAGS

3-234 Vol. 2A CVTSS2SI—Convert Scalar Single-Precision Floating-Point Value to Doubleword IntegerINSTRUCTION SET REFERENCE, A-MCVTSS2SI—Convert Scalar

Pagina 203

Vol. 2A 3-235INSTRUCTION SET REFERENCE, A-MCVTSS2SI—Convert Scalar Single-Precision Floating-Point Value to Doubleword IntegerSIMD Floating-Point Exce

Pagina 204

3-236 Vol. 2A CVTSS2SI—Convert Scalar Single-Precision Floating-Point Value to Doubleword IntegerINSTRUCTION SET REFERENCE, A-MCompatibility Mode Exce

Pagina 205

Vol. 2A 3-237INSTRUCTION SET REFERENCE, A-MCVTTPD2PI—Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Intege

Pagina 206

3-238 Vol. 2A CVTTPD2PI—Convert with Truncation Packed Double-Precision Floating-Point Values toPacked Doubleword IntegersINSTRUCTION SET REFERENCE, A

Pagina 207

Vol. 2A 3-239INSTRUCTION SET REFERENCE, A-MCVTTPD2PI—Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Intege

Pagina 208 - CPUID—CPU Identification

3-240 Vol. 2A CVTTPD2DQ—Convert with Truncation Packed Double-Precision Floating-Point Valuesto Packed Doubleword IntegersINSTRUCTION SET REFERENCE, A

Pagina 209 - Vol. 2A 3-163

Vol. 2A 3-241INSTRUCTION SET REFERENCE, A-MCVTTPD2DQ—Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Intege

Pagina 210

3-242 Vol. 2A CVTTPD2DQ—Convert with Truncation Packed Double-Precision Floating-Point Valuesto Packed Doubleword IntegersINSTRUCTION SET REFERENCE, A

Pagina 211 - Vol. 2A 3-165

Vol. 2A 3-243INSTRUCTION SET REFERENCE, A-MCVTTPS2DQ—Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Doubleword Intege

Pagina 212

Vol. 2A 1-9ABOUT THIS MANUALliterature types: applications notes, data sheets, manuals, papers, and specification updates. See also: • The data sheet

Pagina 213 - Vol. 2A 3-167

3-244 Vol. 2A CVTTPS2DQ—Convert with Truncation Packed Single-Precision Floating-Point Values toPacked Doubleword IntegersINSTRUCTION SET REFERENCE, A

Pagina 214

Vol. 2A 3-245INSTRUCTION SET REFERENCE, A-MCVTTPS2DQ—Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Doubleword Intege

Pagina 215 - • Processor Type — 00B

3-246 Vol. 2A CVTTPS2PI—Convert with Truncation Packed Single-Precision Floating-Point Values toPacked Doubleword IntegersINSTRUCTION SET REFERENCE, A

Pagina 216 - Processor 01B

Vol. 2A 3-247INSTRUCTION SET REFERENCE, A-MCVTTPS2PI—Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Doubleword Intege

Pagina 217 - Vol. 2A 3-171

3-248 Vol. 2A CVTTPS2PI—Convert with Truncation Packed Single-Precision Floating-Point Values toPacked Doubleword IntegersINSTRUCTION SET REFERENCE, A

Pagina 218 - OM16524b

Vol. 2A 3-249INSTRUCTION SET REFERENCE, A-MCVTTSD2SI—Convert with Truncation Scalar Double-Precision Floating-Point Value to Signed Doubleword Integer

Pagina 219 - Vol. 2A 3-173

3-250 Vol. 2A CVTTSD2SI—Convert with Truncation Scalar Double-Precision Floating-Point Value toSigned Doubleword IntegerINSTRUCTION SET REFERENCE, A-M

Pagina 220 - (';

Vol. 2A 3-251INSTRUCTION SET REFERENCE, A-MCVTTSD2SI—Convert with Truncation Scalar Double-Precision Floating-Point Value to Signed Doubleword Integer

Pagina 221 - Vol. 2A 3-175

3-252 Vol. 2A CVTTSS2SI—Convert with Truncation Scalar Single-Precision Floating-Point Value toDoubleword IntegerINSTRUCTION SET REFERENCE, A-MCVTTSS2

Pagina 222

Vol. 2A 3-253INSTRUCTION SET REFERENCE, A-MCVTTSS2SI—Convert with Truncation Scalar Single-Precision Floating-Point Value to Doubleword IntegerIntel C

Pagina 223 - Vol. 2A 3-177

Vol. 2A iiiCONTENTSPAGECHAPTER 1ABOUT THIS MANUAL1.1 IA-32 PROCESSORS COVERED IN THIS MANUAL . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Pagina 224

1-10 Vol. 2AABOUT THIS MANUAL• Intel 64 and IA-32 processor manuals (printed or PDF downloads):http://developer.intel.com/products/processor/manuals/i

Pagina 225 - Vol. 2A 3-179

3-254 Vol. 2A CVTTSS2SI—Convert with Truncation Scalar Single-Precision Floating-Point Value toDoubleword IntegerINSTRUCTION SET REFERENCE, A-M#AC(0)

Pagina 226 - -μop, 8-way set associative

Vol. 2A 3-255INSTRUCTION SET REFERENCE, A-MCWD/CDQ/CQO—Convert Word to Doubleword/Convert Doubleword to QuadwordCWD/CDQ/CQO—Convert Word to Doubleword

Pagina 227 - Vol. 2A 3-181

3-256 Vol. 2A CWD/CDQ/CQO—Convert Word to Doubleword/Convert Doubleword to QuadwordINSTRUCTION SET REFERENCE, A-MRDX ← SignExtend(RAX); FI;FI;Flags Af

Pagina 228 - How Brand Strings Work

Vol. 2A 3-257INSTRUCTION SET REFERENCE, A-MDAA—Decimal Adjust AL after AdditionDAA—Decimal Adjust AL after AdditionDescriptionAdjusts the sum of two p

Pagina 229 - Vol. 2A 3-183

3-258 Vol. 2A DAA—Decimal Adjust AL after AdditionINSTRUCTION SET REFERENCE, A-MExampleADD AL, BL Before: AL=79H BL=35H EFLAGS(OSZAPC)=XXXXXXAfter:

Pagina 230 - III Xeon

Vol. 2A 3-259INSTRUCTION SET REFERENCE, A-MDAS—Decimal Adjust AL after SubtractionDAS—Decimal Adjust AL after SubtractionDescriptionAdjusts the result

Pagina 231

3-260 Vol. 2A DAS—Decimal Adjust AL after SubtractionINSTRUCTION SET REFERENCE, A-MExampleSUB AL, BL Before: AL = 35H, BL = 47H, EFLAGS(OSZAPC) = XX

Pagina 232

Vol. 2A 3-261INSTRUCTION SET REFERENCE, A-MDEC—Decrement by 1DEC—Decrement by 1DescriptionSubtracts 1 from the destination operand, while preserving t

Pagina 233 - Vol. 2A 3-187

3-262 Vol. 2A DEC—Decrement by 1INSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#GP(0) If the destination operand is located in a non-writable

Pagina 234

Vol. 2A 3-263INSTRUCTION SET REFERENCE, A-MDEC—Decrement by 1#AC(0) If alignment checking is enabled and an unaligned memory reference is made while t

Pagina 235 - Vol. 2A 3-189

Vol. 2A 2-1CHAPTER 2INSTRUCTION FORMATThis chapter describes the instruction format for all Intel 64 and IA-32 processors. The instruction format for

Pagina 236

3-264 Vol. 2A DIV—Unsigned DivideINSTRUCTION SET REFERENCE, A-MDIV—Unsigned DivideDescriptionDivides unsigned the value in the AX, DX:AX, EDX:EAX, or

Pagina 237

Vol. 2A 3-265INSTRUCTION SET REFERENCE, A-MDIV—Unsigned DivideOperationIF SRC = 0THEN #DE; FI; (* Divide Error *) IF OperandSize = 8 (* Word/Byte Oper

Pagina 238

3-266 Vol. 2A DIV—Unsigned DivideINSTRUCTION SET REFERENCE, A-MELSE IF 64-Bit Mode and Operandsize = 64 (* Doublequadword/quadword operation *)THENtem

Pagina 239

Vol. 2A 3-267INSTRUCTION SET REFERENCE, A-MDIV—Unsigned DivideVirtual-8086 Mode Exceptions#DE If the source operand (divisor) is 0.If the quotient is

Pagina 240

3-268 Vol. 2A DIVPD—Divide Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MDIVPD—Divide Packed Double-Precision Floating-Po

Pagina 241 - Packed Doubleword Integers

Vol. 2A 3-269INSTRUCTION SET REFERENCE, A-MDIVPD—Divide Packed Double-Precision Floating-Point Values#XM If an unmasked SIMD floating-point exception

Pagina 242

3-270 Vol. 2A DIVPD—Divide Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#XM If an unmasked SIMD floating-point exceptio

Pagina 243 - Vol. 2A 3-197

Vol. 2A 3-271INSTRUCTION SET REFERENCE, A-MDIVPS—Divide Packed Single-Precision Floating-Point ValuesDIVPS—Divide Packed Single-Precision Floating-Poi

Pagina 244

3-272 Vol. 2A DIVPS—Divide Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#NM If CR0.TS[bit 3] = 1. #XM If an unmasked SI

Pagina 245

Vol. 2A 3-273INSTRUCTION SET REFERENCE, A-MDIVPS—Divide Packed Single-Precision Floating-Point Values#NM If CR0.TS[bit 3] = 1. #XM If an unmasked SIM

Pagina 246

2-2 Vol. 2AINSTRUCTION FORMAT• F2H—REPNE/REPNZ (used only with string instructions; when used with the escape opcode 0FH, this prefix is treated as a

Pagina 247

3-274 Vol. 2A DIVSD—Divide Scalar Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MDIVSD—Divide Scalar Double-Precision Floating-Po

Pagina 248

Vol. 2A 3-275INSTRUCTION SET REFERENCE, A-MDIVSD—Divide Scalar Double-Precision Floating-Point ValuesIf CR0.EM[bit 2] = 1.If CR4.OSFXSR[bit 9] = 0.If

Pagina 249

3-276 Vol. 2A DIVSD—Divide Scalar Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MIf CR0.EM[bit 2] = 1.If CR4.OSFXSR[bit 9] = 0.If

Pagina 250

Vol. 2A 3-277INSTRUCTION SET REFERENCE, A-MDIVSS—Divide Scalar Single-Precision Floating-Point ValuesDIVSS—Divide Scalar Single-Precision Floating-Poi

Pagina 251

3-278 Vol. 2A DIVSS—Divide Scalar Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MIf CR0.EM[bit 2] = 1.If CR4.OSFXSR[bit 9] = 0.If

Pagina 252

Vol. 2A 3-279INSTRUCTION SET REFERENCE, A-MDIVSS—Divide Scalar Single-Precision Floating-Point ValuesIf CR0.EM[bit 2] = 1.If CR4.OSFXSR[bit 9] = 0.If

Pagina 253

3-280 Vol. 2A EMMS—Empty MMX Technology StateINSTRUCTION SET REFERENCE, A-MEMMS—Empty MMX Technology StateDescription Sets the values of all the tags

Pagina 254

Vol. 2A 3-281INSTRUCTION SET REFERENCE, A-MEMMS—Empty MMX Technology StateVirtual-8086 Mode ExceptionsSame exceptions as in protected mode.Compatibili

Pagina 255

3-282 Vol. 2A ENTER—Make Stack Frame for Procedure ParametersINSTRUCTION SET REFERENCE, A-MENTER—Make Stack Frame for Procedure ParametersDescriptionC

Pagina 256

Vol. 2A 3-283INSTRUCTION SET REFERENCE, A-MENTER—Make Stack Frame for Procedure ParametersOperationNestingLevel ← NestingLevel MOD 32IF 64-Bit Mode (S

Pagina 257

Vol. 2A 2-3INSTRUCTION FORMATopcodes with Intel 64 or IA-32 instructions is reserved; such use may cause unpre-dictable behavior.The operand-size over

Pagina 258

3-284 Vol. 2A ENTER—Make Stack Frame for Procedure ParametersINSTRUCTION SET REFERENCE, A-MFI;FI;OD;FI;IF 64-Bit Mode (StackSize = 64)THENPush(FrameTe

Pagina 259

Vol. 2A 3-285INSTRUCTION SET REFERENCE, A-MENTER—Make Stack Frame for Procedure ParametersReal-Address Mode Exceptions#SS(0) If the new value of the S

Pagina 260

3-286 Vol. 2A F2XM1—Compute 2x–1INSTRUCTION SET REFERENCE, A-MF2XM1—Compute 2x–1DescriptionComputes the exponential value of 2 to the power of the sou

Pagina 261 - Vol. 2A 3-215

Vol. 2A 3-287INSTRUCTION SET REFERENCE, A-MF2XM1—Compute 2x–1#U Result is too small for destination format.#P Value cannot be represented exactly in d

Pagina 262

3-288 Vol. 2A FABS—Absolute ValueINSTRUCTION SET REFERENCE, A-MFABS—Absolute ValueDescriptionClears the sign bit of ST(0) to create the absolute value

Pagina 263

Vol. 2A 3-289INSTRUCTION SET REFERENCE, A-MFABS—Absolute ValueReal-Address Mode ExceptionsSame exceptions as in protected mode.Virtual-8086 Mode Excep

Pagina 264

3-290 Vol. 2A FADD/FADDP/FIADD—AddINSTRUCTION SET REFERENCE, A-MFADD/FADDP/FIADD—AddDescriptionAdds the destination and source operands and stores the

Pagina 265 - Doubleword Integer

Vol. 2A 3-291INSTRUCTION SET REFERENCE, A-MFADD/FADDP/FIADD—AddThe table on the following page shows the results obtained when adding various classes

Pagina 266

3-292 Vol. 2A FADD/FADDP/FIADD—AddINSTRUCTION SET REFERENCE, A-MFPU Flags AffectedC1 Set to 0 if stack underflow occurred.Set if result was rounded up

Pagina 267

Vol. 2A 3-293INSTRUCTION SET REFERENCE, A-MFADD/FADDP/FIADD—Add#NM CR0.EM[bit 2] or CR0.TS[bit 3] = 1.#PF(fault-code) If a page fault occurs.#AC(0) If

Pagina 268

2-4 Vol. 2AINSTRUCTION FORMAT2.1.3 ModR/M and SIB BytesMany instructions that refer to an operand in memory have an addressing-form spec-ifier byte (

Pagina 269

3-294 Vol. 2A FBLD—Load Binary Coded DecimalINSTRUCTION SET REFERENCE, A-MFBLD—Load Binary Coded DecimalDescriptionConverts the BCD source operand int

Pagina 270

Vol. 2A 3-295INSTRUCTION SET REFERENCE, A-MFBLD—Load Binary Coded DecimalReal-Address Mode Exceptions#GP If a memory operand effective address is outs

Pagina 271 - Floating-Point Value

3-296 Vol. 2A FBSTP—Store BCD Integer and PopINSTRUCTION SET REFERENCE, A-MFBSTP—Store BCD Integer and PopDescriptionConverts the value in the ST(0) r

Pagina 272

Vol. 2A 3-297INSTRUCTION SET REFERENCE, A-MFBSTP—Store BCD Integer and Popnation operand. If the invalid-operation exception is masked, the packed BCD

Pagina 273

3-298 Vol. 2A FBSTP—Store BCD Integer and PopINSTRUCTION SET REFERENCE, A-M#NM CR0.EM[bit 2] or CR0.TS[bit 3] = 1.#UD If the LOCK prefix is used.Virt

Pagina 274

Vol. 2A 3-299INSTRUCTION SET REFERENCE, A-MFCHS—Change SignFCHS—Change SignDescriptionComplements the sign bit of ST(0). This operation changes a posi

Pagina 275

3-300 Vol. 2A FCHS—Change SignINSTRUCTION SET REFERENCE, A-MReal-Address Mode ExceptionsSame exceptions as in protected mode.Virtual-8086 Mode Excepti

Pagina 276

Vol. 2A 3-301INSTRUCTION SET REFERENCE, A-MFCLEX/FNCLEX—Clear ExceptionsFCLEX/FNCLEX—Clear ExceptionsDescriptionClears the floating-point exception fl

Pagina 277

3-302 Vol. 2A FCLEX/FNCLEX—Clear ExceptionsINSTRUCTION SET REFERENCE, A-MFPU Flags AffectedThe PE, UE, OE, ZE, DE, IE, ES, SF, and B flags in the FPU

Pagina 278

Vol. 2A 3-303INSTRUCTION SET REFERENCE, A-MFCMOVcc—Floating-Point Conditional MoveFCMOVcc—Floating-Point Conditional MoveDescriptionTests the status f

Pagina 279 - Vol. 2A 3-233

Vol. 2A 2-5INSTRUCTION FORMATlocation; the last eight (Mod = 11B) provide ways of specifying general-purpose, MMX technology and XMM registers. The Mo

Pagina 280

3-304 Vol. 2A FCMOVcc—Floating-Point Conditional MoveINSTRUCTION SET REFERENCE, A-MOperationIF condition TRUETHEN ST(0) ← ST(i);FI;FPU Flags AffectedC

Pagina 281

Vol. 2A 3-305INSTRUCTION SET REFERENCE, A-MFCMOVcc—Floating-Point Conditional MoveFCOM/FCOMP/FCOMPP—Compare Floating Point ValuesDescriptionCompares t

Pagina 282

3-306 Vol. 2A FCMOVcc—Floating-Point Conditional MoveINSTRUCTION SET REFERENCE, A-MThe FCOMP instruction pops the register stack following the compari

Pagina 283

Vol. 2A 3-307INSTRUCTION SET REFERENCE, A-MFCMOVcc—Floating-Point Conditional MoveFloating-Point Exceptions#IS Stack underflow occurred.#IA One or bot

Pagina 284

3-308 Vol. 2A FCMOVcc—Floating-Point Conditional MoveINSTRUCTION SET REFERENCE, A-MCompatibility Mode ExceptionsSame exceptions as in protected mode.6

Pagina 285

Vol. 2A 3-309INSTRUCTION SET REFERENCE, A-MFCOMI/FCOMIP/ FUCOMI/FUCOMIP—Compare Floating Point Values and Set EFLAGSFCOMI/FCOMIP/ FUCOMI/FUCOMIP—Compa

Pagina 286

3-310 Vol. 2A FCOMI/FCOMIP/ FUCOMI/FUCOMIP—Compare Floating Point Values and Set EFLAGSINSTRUCTION SET REFERENCE, A-MIf the operation results in an in

Pagina 287

Vol. 2A 3-311INSTRUCTION SET REFERENCE, A-MFCOMI/FCOMIP/ FUCOMI/FUCOMIP—Compare Floating Point Values and Set EFLAGSZF, PF, CF ← 111;FI;FI;FI;IF Instr

Pagina 288

3-312 Vol. 2A FCOS—CosineINSTRUCTION SET REFERENCE, A-MFCOS—CosineDescriptionComputes the cosine of the source operand in register ST(0) and stores th

Pagina 289

Vol. 2A 3-313INSTRUCTION SET REFERENCE, A-MFCOS—CosineST(0) ← cosine(ST(0));ELSE (* Source operand is out-of-range *)C2 ← 1;FI;FPU Flags AffectedC1 Se

Pagina 290

2-6 Vol. 2AINSTRUCTION FORMATNOTES:1. The default segment register is SS for the effective addresses containing a BP index, DS for othereffective addr

Pagina 291 - Vol. 2A 3-245

3-314 Vol. 2A FDECSTP—Decrement Stack-Top PointerINSTRUCTION SET REFERENCE, A-MFDECSTP—Decrement Stack-Top PointerDescriptionSubtracts one from the TO

Pagina 292

Vol. 2A 3-315INSTRUCTION SET REFERENCE, A-MFDECSTP—Decrement Stack-Top PointerCompatibility Mode ExceptionsSame exceptions as in protected mode.64-Bit

Pagina 293

3-316 Vol. 2A FDIV/FDIVP/FIDIV—DivideINSTRUCTION SET REFERENCE, A-MFDIV/FDIVP/FIDIV—DivideDescriptionDivides the destination operand by the source ope

Pagina 294

Vol. 2A 3-317INSTRUCTION SET REFERENCE, A-MFDIV/FDIVP/FIDIV—DivideIf an unmasked divide-by-zero exception (#Z) is generated, no result is stored; if t

Pagina 295

3-318 Vol. 2A FDIV/FDIVP/FIDIV—DivideINSTRUCTION SET REFERENCE, A-MIF Instruction = FDIVP THEN PopRegisterStack;FI;FPU Flags AffectedC1 Set to 0 if st

Pagina 296

Vol. 2A 3-319INSTRUCTION SET REFERENCE, A-MFDIV/FDIVP/FIDIV—DivideVirtual-8086 Mode Exceptions#GP(0) If a memory operand effective address is outside

Pagina 297

3-320 Vol. 2A FDIVR/FDIVRP/FIDIVR—Reverse DivideINSTRUCTION SET REFERENCE, A-MFDIVR/FDIVRP/FIDIVR—Reverse DivideDescriptionDivides the source operand

Pagina 298

Vol. 2A 3-321INSTRUCTION SET REFERENCE, A-MFDIVR/FDIVRP/FIDIVR—Reverse DivideThe FIDIVR instructions convert an integer source operand to double exten

Pagina 299

3-322 Vol. 2A FDIVR/FDIVRP/FIDIVR—Reverse DivideINSTRUCTION SET REFERENCE, A-MDEST ← SRC / DEST;FI;FI;IF Instruction = FDIVRP THEN PopRegisterStack;F

Pagina 300

Vol. 2A 3-323INSTRUCTION SET REFERENCE, A-MFDIVR/FDIVRP/FIDIVR—Reverse Divide#SS If a memory operand effective address is outside the SS segment limit

Pagina 301 - Quadword

Vol. 2A 2-7INSTRUCTION FORMATNOTES:1. The [--][--] nomenclature means a SIB follows the ModR/M byte.2. The disp32 nomenclature denotes a 32-bit displa

Pagina 302

3-324 Vol. 2A FFREE—Free Floating-Point RegisterINSTRUCTION SET REFERENCE, A-MFFREE—Free Floating-Point RegisterDescriptionSets the tag in the FPU tag

Pagina 303 - > 9) or AF = 1)

Vol. 2A 3-325INSTRUCTION SET REFERENCE, A-MFICOM/FICOMP—Compare IntegerFICOM/FICOMP—Compare IntegerDescriptionCompares the value in ST(0) with an inte

Pagina 304

3-326 Vol. 2A FICOM/FICOMP—Compare IntegerINSTRUCTION SET REFERENCE, A-MESAC;IF Instruction = FICOMP THEN PopRegisterStack; FI;FPU Flags AffectedC1 Se

Pagina 305 - Vol. 2A 3-259

Vol. 2A 3-327INSTRUCTION SET REFERENCE, A-MFICOM/FICOMP—Compare Integer#SS(0) If a memory operand effective address is outside the SS segment limit.#N

Pagina 306

3-328 Vol. 2A FILD—Load IntegerINSTRUCTION SET REFERENCE, A-MFILD—Load IntegerDescriptionConverts the signed-integer source operand into double extend

Pagina 307 - DEC—Decrement by 1

Vol. 2A 3-329INSTRUCTION SET REFERENCE, A-MFILD—Load Integer#UD If the LOCK prefix is used.Real-Address Mode Exceptions#GP If a memory operand effect

Pagina 308

3-330 Vol. 2A FINCSTP—Increment Stack-Top PointerINSTRUCTION SET REFERENCE, A-MFINCSTP—Increment Stack-Top PointerDescriptionAdds one to the TOP field

Pagina 309 - Vol. 2A 3-263

Vol. 2A 3-331INSTRUCTION SET REFERENCE, A-MFINCSTP—Increment Stack-Top PointerCompatibility Mode ExceptionsSame exceptions as in protected mode.64-Bit

Pagina 310 - DIV—Unsigned Divide

3-332 Vol. 2A FINIT/FNINIT—Initialize Floating-Point UnitINSTRUCTION SET REFERENCE, A-MFINIT/FNINIT—Initialize Floating-Point UnitDescriptionSets the

Pagina 311 - Table 3-20. DIV Action

Vol. 2A 3-333INSTRUCTION SET REFERENCE, A-MFINIT/FNINIT—Initialize Floating-Point UnitOperationFPUControlWord ← 037FH;FPUStatusWord ← 0;FPUTagWord ← F

Pagina 312

2-8 Vol. 2AINSTRUCTION FORMATof the table indicate the register used as the index (SIB byte bits 3, 4 and 5) and the scaling factor (determined by SIB

Pagina 313

3-334 Vol. 2A FIST/FISTP—Store IntegerINSTRUCTION SET REFERENCE, A-MFIST/FISTP—Store IntegerDescriptionThe FIST instruction converts the value in the

Pagina 314

Vol. 2A 3-335INSTRUCTION SET REFERENCE, A-MFIST/FISTP—Store IntegerIf the source value is a non-integral value, it is rounded to an integer value, acc

Pagina 315

3-336 Vol. 2A FIST/FISTP—Store IntegerINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#GP(0) If the destination is located in a non-writable se

Pagina 316

Vol. 2A 3-337INSTRUCTION SET REFERENCE, A-MFIST/FISTP—Store Integer#NM CR0.EM[bit 2] or CR0.TS[bit 3] = 1.#MF If there is a pending x87 FPU exception

Pagina 317 - Vol. 2A 3-271

3-338 Vol. 2A FISTTP—Store Integer with TruncationINSTRUCTION SET REFERENCE, A-MFISTTP—Store Integer with TruncationDescriptionFISTTP converts the val

Pagina 318

Vol. 2A 3-339INSTRUCTION SET REFERENCE, A-MFISTTP—Store Integer with TruncationNumeric ExceptionsInvalid, Stack Invalid (stack underflow), Precision.P

Pagina 319 - Vol. 2A 3-273

3-340 Vol. 2A FISTTP—Store Integer with TruncationINSTRUCTION SET REFERENCE, A-M64-Bit Mode Exceptions#SS(0) If a memory address referencing the SS se

Pagina 320

Vol. 2A 3-341INSTRUCTION SET REFERENCE, A-MFLD—Load Floating Point ValueFLD—Load Floating Point ValueDescriptionPushes the source operand onto the FPU

Pagina 321

3-342 Vol. 2A FLD—Load Floating Point ValueINSTRUCTION SET REFERENCE, A-M#IA Source operand is an SNaN. Does not occur if the source operand is in dou

Pagina 322

Vol. 2A 3-343INSTRUCTION SET REFERENCE, A-MFLD—Load Floating Point ValueCompatibility Mode ExceptionsSame exceptions as in protected mode.64-Bit Mode

Pagina 323

Vol. 2A 2-9INSTRUCTION FORMAT2.2 IA-32E MODEIA-32e mode has two sub-modes. These are: • Compatibility Mode. Enables a 64-bit operating system to run m

Pagina 324

3-344 Vol. 2A FLD1/FLDL2T/FLDL2E/FLDPI/FLDLG2/FLDLN2/FLDZ—Load ConstantINSTRUCTION SET REFERENCE, A-MFLD1/FLDL2T/FLDL2E/FLDPI/FLDLG2/FLDLN2/FLDZ—Load

Pagina 325 - Vol. 2A 3-279

Vol. 2A 3-345INSTRUCTION SET REFERENCE, A-MFLD1/FLDL2T/FLDL2E/FLDPI/FLDLG2/FLDLN2/FLDZ—Load ConstantFloating-Point Exceptions#IS Stack overflow occurr

Pagina 326

3-346 Vol. 2A FLDCW—Load x87 FPU Control WordINSTRUCTION SET REFERENCE, A-MFLDCW—Load x87 FPU Control WordDescriptionLoads the 16-bit source operand i

Pagina 327

Vol. 2A 3-347INSTRUCTION SET REFERENCE, A-MFLDCW—Load x87 FPU Control Word#AC(0) If alignment checking is enabled and an unaligned memory reference is

Pagina 328

3-348 Vol. 2A FLDENV—Load x87 FPU EnvironmentINSTRUCTION SET REFERENCE, A-MFLDENV—Load x87 FPU EnvironmentDescriptionLoads the complete x87 FPU operat

Pagina 329 - 1 to (NestingLevel - 1)

Vol. 2A 3-349INSTRUCTION SET REFERENCE, A-MFLDENV—Load x87 FPU EnvironmentFPU Flags AffectedThe C0, C1, C2, C3 flags are loaded.Floating-Point Excepti

Pagina 330

3-350 Vol. 2A FLDENV—Load x87 FPU EnvironmentINSTRUCTION SET REFERENCE, A-MCompatibility Mode ExceptionsSame exceptions as in protected mode.64-Bit Mo

Pagina 331

Vol. 2A 3-351INSTRUCTION SET REFERENCE, A-MFMUL/FMULP/FIMUL—MultiplyFMUL/FMULP/FIMUL—MultiplyDescriptionMultiplies the destination and source operands

Pagina 332 - F2XM1—Compute 2

3-352 Vol. 2A FMUL/FMULP/FIMUL—MultiplyINSTRUCTION SET REFERENCE, A-MThe FIMUL instructions convert an integer source operand to double extended-preci

Pagina 333

Vol. 2A 3-353INSTRUCTION SET REFERENCE, A-MFMUL/FMULP/FIMUL—MultiplyFPU Flags AffectedC1 Set to 0 if stack underflow occurred.Set if result was rounde

Pagina 334 - FABS—Absolute Value

CONTENTSivVol. 2APAGE3.1.1.5 Description Column in the Instruction Summary Table. . . . . . . . . . . . . . . . . . . . . . . . . . 3-73.1.1.6 Descri

Pagina 335

2-10 Vol. 2AINSTRUCTION FORMAT2.2.1.1 EncodingIntel 64 and IA-32 instruction formats specify up to three registers by using 3-bit fields in the enco

Pagina 336 - FADD/FADDP/FIADD—Add

3-354 Vol. 2A FMUL/FMULP/FIMUL—MultiplyINSTRUCTION SET REFERENCE, A-M#NM CR0.EM[bit 2] or CR0.TS[bit 3] = 1.#PF(fault-code) If a page fault occurs.#AC

Pagina 337 - = FADDP

Vol. 2A 3-355INSTRUCTION SET REFERENCE, A-MFNOP—No OperationFNOP—No OperationDescriptionPerforms no FPU operation. This instruction takes up space in

Pagina 338 - Floating-Point Exceptions

3-356 Vol. 2A FPATAN—Partial ArctangentINSTRUCTION SET REFERENCE, A-MFPATAN—Partial ArctangentDescriptionComputes the arctangent of the source operand

Pagina 339

Vol. 2A 3-357INSTRUCTION SET REFERENCE, A-MFPATAN—Partial ArctangentThere is no restriction on the range of source operands that FPATAN can accept.Thi

Pagina 340

3-358 Vol. 2A FPATAN—Partial ArctangentINSTRUCTION SET REFERENCE, A-MFloating-Point Exceptions#IS Stack underflow occurred.#IA Source operand is an SN

Pagina 341

Vol. 2A 3-359INSTRUCTION SET REFERENCE, A-MFPREM—Partial RemainderFPREM—Partial RemainderDescriptionComputes the remainder obtained from dividing the

Pagina 342 - Table 3-24. FBSTP Results

3-360 Vol. 2A FPREM—Partial RemainderINSTRUCTION SET REFERENCE, A-MThe FPREM instruction does not compute the remainder specified in IEEE Std 754. The

Pagina 343

Vol. 2A 3-361INSTRUCTION SET REFERENCE, A-MFPREM—Partial RemainderFPU Flags AffectedC0 Set to bit 2 (Q2) of the quotient.C1 Set to 0 if stack underflo

Pagina 344

3-362 Vol. 2A FPREM1—Partial RemainderINSTRUCTION SET REFERENCE, A-MFPREM1—Partial RemainderDescriptionComputes the IEEE remainder obtained from divid

Pagina 345 - FCHS—Change Sign

Vol. 2A 3-363INSTRUCTION SET REFERENCE, A-MFPREM1—Partial RemainderThe FPREM1 instruction computes the remainder specified in IEEE Standard 754. This

Pagina 346

Vol. 2A 2-11INSTRUCTION FORMATTable 2-4. REX Prefix Fields [BITS: 0100WRXB]Field Name Bit Position Definition- 7:4 0100W 3 0 = Operand size determine

Pagina 347 - FCLEX/FNCLEX—Clear Exceptions

3-364 Vol. 2A FPREM1—Partial RemainderINSTRUCTION SET REFERENCE, A-MC2 Set to 0 if reduction complete; set to 1 if incomplete.C3 Set to bit 1 (Q1) of

Pagina 348

Vol. 2A 3-365INSTRUCTION SET REFERENCE, A-MFPTAN—Partial TangentFPTAN—Partial TangentDescriptionComputes the tangent of the source operand in register

Pagina 349

3-366 Vol. 2A FPTAN—Partial TangentINSTRUCTION SET REFERENCE, A-MThis instruction’s operation is the same in non-64-bit modes and 64-bit mode.Operatio

Pagina 350

Vol. 2A 3-367INSTRUCTION SET REFERENCE, A-MFPTAN—Partial TangentCompatibility Mode ExceptionsSame exceptions as in protected mode.64-Bit Mode Exceptio

Pagina 351

3-368 Vol. 2A FRNDINT—Round to IntegerINSTRUCTION SET REFERENCE, A-MFRNDINT—Round to IntegerDescriptionRounds the source value in the ST(0) register t

Pagina 352

Vol. 2A 3-369INSTRUCTION SET REFERENCE, A-MFRNDINT—Round to IntegerCompatibility Mode ExceptionsSame exceptions as in protected mode.64-Bit Mode Excep

Pagina 353

3-370 Vol. 2A FRSTOR—Restore x87 FPU StateINSTRUCTION SET REFERENCE, A-MFRSTOR—Restore x87 FPU StateDescriptionLoads the FPU state (operating environm

Pagina 354

Vol. 2A 3-371INSTRUCTION SET REFERENCE, A-MFRSTOR—Restore x87 FPU StateST(7) ← SRC[ST(7)];FPU Flags AffectedThe C0, C1, C2, C3 flags are loaded.Floati

Pagina 355 - Set EFLAGS

3-372 Vol. 2A FRSTOR—Restore x87 FPU StateINSTRUCTION SET REFERENCE, A-M#AC(0) If alignment checking is enabled and an unaligned memory reference is m

Pagina 356

Vol. 2A 3-373INSTRUCTION SET REFERENCE, A-MFSAVE/FNSAVE—Store x87 FPU StateFSAVE/FNSAVE—Store x87 FPU StateDescriptionStores the current FPU state (op

Pagina 357 - Vol. 2A 3-311

2-12 Vol. 2AINSTRUCTION FORMATIn the IA-32 architecture, byte registers (AH, AL, BH, BL, CH, CL, DH, and DL) are encoded in the ModR/M byte’s reg fiel

Pagina 358 - FCOS—Cosine

3-374 Vol. 2A FSAVE/FNSAVE—Store x87 FPU StateINSTRUCTION SET REFERENCE, A-Minstructions separately. If an exception is generated for either of these

Pagina 359 - Vol. 2A 3-313

Vol. 2A 3-375INSTRUCTION SET REFERENCE, A-MFSAVE/FNSAVE—Store x87 FPU StateFPU Flags AffectedThe C0, C1, C2, and C3 flags are saved and then cleared.F

Pagina 360

3-376 Vol. 2A FSAVE/FNSAVE—Store x87 FPU StateINSTRUCTION SET REFERENCE, A-MCompatibility Mode ExceptionsSame exceptions as in protected mode.64-Bit M

Pagina 361

Vol. 2A 3-377INSTRUCTION SET REFERENCE, A-MFSCALE—ScaleFSCALE—ScaleDescriptionTruncates the value in the source operand (toward 0) to an integral valu

Pagina 362 - FDIV/FDIVP/FIDIV—Divide

3-378 Vol. 2A FSCALE—ScaleINSTRUCTION SET REFERENCE, A-Mbefore the FXTRACT operation was performed. The FSTP ST(1) instruction overwrites the exponent

Pagina 363 - Vol. 2A 3-317

Vol. 2A 3-379INSTRUCTION SET REFERENCE, A-MFSIN—SineFSIN—SineDescriptionComputes the sine of the source operand in register ST(0) and stores the resul

Pagina 364 - = FDIVP

3-380 Vol. 2A FSIN—SineINSTRUCTION SET REFERENCE, A-MST(0) ← sin(ST(0));ELSE (* Source operand out of range *)C2 ← 1;FI;FPU Flags AffectedC1 Set to 0

Pagina 365

Vol. 2A 3-381INSTRUCTION SET REFERENCE, A-MFSINCOS—Sine and CosineFSINCOS—Sine and CosineDescriptionComputes both the sine and the cosine of the sourc

Pagina 366

3-382 Vol. 2A FSINCOS—Sine and CosineINSTRUCTION SET REFERENCE, A-MOperationIF ST(0) < 263THENC2 ← 0;TEMP ← cosine(ST(0));ST(0) ← sine(ST(0));TOP ←

Pagina 367 - = FIDIVR

Vol. 2A 3-383INSTRUCTION SET REFERENCE, A-MFSINCOS—Sine and CosineCompatibility Mode ExceptionsSame exceptions as in protected mode.64-Bit Mode Except

Pagina 368 - = FDIVRP

Vol. 2A 2-13INSTRUCTION FORMAT2.2.1.3 Displacement Addressing in 64-bit mode uses existing 32-bit ModR/M and SIB encodings. The ModR/M and SIB displ

Pagina 369

3-384 Vol. 2A FSQRT—Square RootINSTRUCTION SET REFERENCE, A-MFSQRT—Square RootDescriptionComputes the square root of the source value in the ST(0) reg

Pagina 370

Vol. 2A 3-385INSTRUCTION SET REFERENCE, A-MFSQRT—Square RootSource operand is a negative value (except for −0).#D Source operand is a denormal value.#

Pagina 371 - FICOM/FICOMP—Compare Integer

3-386 Vol. 2A FST/FSTP—Store Floating Point ValueINSTRUCTION SET REFERENCE, A-MFST/FSTP—Store Floating Point ValueDescriptionThe FST instruction copie

Pagina 372 - = FICOMP

Vol. 2A 3-387INSTRUCTION SET REFERENCE, A-MFST/FSTP—Store Floating Point ValueIf the destination operand is a non-empty register, the invalid-operatio

Pagina 373

3-388 Vol. 2A FST/FSTP—Store Floating Point ValueINSTRUCTION SET REFERENCE, A-MReal-Address Mode Exceptions#GP If a memory operand effective address i

Pagina 374 - FILD—Load Integer

Vol. 2A 3-389INSTRUCTION SET REFERENCE, A-MFSTCW/FNSTCW—Store x87 FPU Control WordFSTCW/FNSTCW—Store x87 FPU Control WordDescriptionStores the current

Pagina 375

3-390 Vol. 2A FSTCW/FNSTCW—Store x87 FPU Control WordINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#GP(0) If the destination is located in a

Pagina 376

Vol. 2A 3-391INSTRUCTION SET REFERENCE, A-MFSTCW/FNSTCW—Store x87 FPU Control Word#NM CR0.EM[bit 2] or CR0.TS[bit 3] = 1.#MF If there is a pending x8

Pagina 377

3-392 Vol. 2A FSTENV/FNSTENV—Store x87 FPU EnvironmentINSTRUCTION SET REFERENCE, A-MFSTENV/FNSTENV—Store x87 FPU EnvironmentDescriptionSaves the curre

Pagina 378

Vol. 2A 3-393INSTRUCTION SET REFERENCE, A-MFSTENV/FNSTENV—Store x87 FPU EnvironmentIA-32 Architecture CompatibilityWhen operating a Pentium or Intel48

Pagina 379 - Vol. 2A 3-333

2-14 Vol. 2AINSTRUCTION FORMATsize of the memory offset follows the address-size default (64 bits in 64-bit mode). See Table 2-6.2.2.1.5 Immediates

Pagina 380 - FIST/FISTP—Store Integer

3-394 Vol. 2A FSTENV/FNSTENV—Store x87 FPU EnvironmentINSTRUCTION SET REFERENCE, A-M#SS If a memory operand effective address is outside the SS segmen

Pagina 381 - ← not roundup; 1 ← roundup

Vol. 2A 3-395INSTRUCTION SET REFERENCE, A-MFSTSW/FNSTSW—Store x87 FPU Status WordFSTSW/FNSTSW—Store x87 FPU Status WordDescriptionStores the current v

Pagina 382

3-396 Vol. 2A FSTSW/FNSTSW—Store x87 FPU Status WordINSTRUCTION SET REFERENCE, A-MIA-32 Architecture CompatibilityWhen operating a Pentium or Intel486

Pagina 383 - Vol. 2A 3-337

Vol. 2A 3-397INSTRUCTION SET REFERENCE, A-MFSTSW/FNSTSW—Store x87 FPU Status WordVirtual-8086 Mode Exceptions#GP(0) If a memory operand effective addr

Pagina 384

3-398 Vol. 2A FSUB/FSUBP/FISUB—SubtractINSTRUCTION SET REFERENCE, A-MFSUB/FSUBP/FISUB—SubtractDescriptionSubtracts the source operand from the destina

Pagina 385 - Virtual 8086 Mode Exceptions

Vol. 2A 3-399INSTRUCTION SET REFERENCE, A-MFSUB/FSUBP/FISUB—SubtractThe FISUB instructions convert an integer source operand to double extended-preci-

Pagina 386

3-400 Vol. 2A FSUB/FSUBP/FISUB—SubtractINSTRUCTION SET REFERENCE, A-MIF Instruction = FSUBP THEN PopRegisterStack;FI;FPU Flags AffectedC1 Set to 0 if

Pagina 387 - FLD—Load Floating Point Value

Vol. 2A 3-401INSTRUCTION SET REFERENCE, A-MFSUB/FSUBP/FISUB—SubtractVirtual-8086 Mode Exceptions#GP(0) If a memory operand effective address is outsid

Pagina 388

3-402 Vol. 2A FSUBR/FSUBRP/FISUBR—Reverse SubtractINSTRUCTION SET REFERENCE, A-MFSUBR/FSUBRP/FISUBR—Reverse SubtractDescriptionSubtracts the destinati

Pagina 389

Vol. 2A 3-403INSTRUCTION SET REFERENCE, A-MFSUBR/FSUBRP/FISUBR—Reverse Subtractthe register stack being popped. In some assemblers, the mnemonic for t

Pagina 390

Vol. 2A 2-15INSTRUCTION FORMATThe ModR/M encoding for RIP-relative addressing does not depend on using prefix. Specifically, the r/m bit field encodin

Pagina 391 - Vol. 2A 3-345

3-404 Vol. 2A FSUBR/FSUBRP/FISUBR—Reverse SubtractINSTRUCTION SET REFERENCE, A-MIF Instruction = FSUBRP THEN PopRegisterStack; FI;FPU Flags AffectedC1

Pagina 392

Vol. 2A 3-405INSTRUCTION SET REFERENCE, A-MFSUBR/FSUBRP/FISUBR—Reverse SubtractVirtual-8086 Mode Exceptions#GP(0) If a memory operand effective addres

Pagina 393

3-406 Vol. 2A FTST—TESTINSTRUCTION SET REFERENCE, A-MFTST—TESTDescriptionCompares the value in the ST(0) register with 0.0 and sets the condition code

Pagina 394

Vol. 2A 3-407INSTRUCTION SET REFERENCE, A-MFTST—TEST#IA The source operand is a NaN value or is in an unsupported format.#D The source operand is a de

Pagina 395

3-408 Vol. 2A FUCOM/FUCOMP/FUCOMPP—Unordered Compare Floating Point ValuesINSTRUCTION SET REFERENCE, A-MFUCOM/FUCOMP/FUCOMPP—Unordered Compare Floatin

Pagina 396

Vol. 2A 3-409INSTRUCTION SET REFERENCE, A-MFUCOM/FUCOMP/FUCOMPP—Unordered Compare Floating Point ValuesThe FUCOMP instruction pops the register stack

Pagina 397 - FMUL/FMULP/FIMUL—Multiply

3-410 Vol. 2A FUCOM/FUCOMP/FUCOMPP—Unordered Compare Floating Point ValuesINSTRUCTION SET REFERENCE, A-M#IA One or both operands are SNaN values or ha

Pagina 398 - = FMULP

Vol. 2A 3-411INSTRUCTION SET REFERENCE, A-MFXAM—ExamineModR/MFXAM—ExamineModR/MDescriptionExamines the contents of the ST(0) register and sets the con

Pagina 399

3-412 Vol. 2A FXAM—ExamineModR/MINSTRUCTION SET REFERENCE, A-MFPU Flags AffectedC1 Sign of value in ST(0).C0, C2, C3 See Table 3-47.Floating-Point Exc

Pagina 400

Vol. 2A 3-413INSTRUCTION SET REFERENCE, A-MFXCH—Exchange Register ContentsFXCH—Exchange Register ContentsDescriptionExchanges the contents of register

Pagina 401 - FNOP—No Operation

2-16 Vol. 2AINSTRUCTION FORMAT

Pagina 402 - FPATAN—Partial Arctangent

3-414 Vol. 2A FXCH—Exchange Register ContentsINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#NM CR0.EM[bit 2] or CR0.TS[bit 3] = 1.#MF If the

Pagina 403 - Vol. 2A 3-357

Vol. 2A 3-415INSTRUCTION SET REFERENCE, A-MFXRSTOR—Restore x87 FPU, MMX , XMM, and MXCSR StateFXRSTOR—Restore x87 FPU, MMX , XMM, and MXCSR StateDescr

Pagina 404

3-416 Vol. 2A FXRSTOR—Restore x87 FPU, MMX , XMM, and MXCSR StateINSTRUCTION SET REFERENCE, A-Mx87 FPU and SIMD Floating-Point ExceptionsNone.Protecte

Pagina 405 - FPREM—Partial Remainder

Vol. 2A 3-417INSTRUCTION SET REFERENCE, A-MFXRSTOR—Restore x87 FPU, MMX , XMM, and MXCSR StateVirtual-8086 Mode ExceptionsSame exceptions as in real a

Pagina 406

3-418 Vol. 2A FXSAVE—Save x87 FPU, MMX Technology, SSE, and SSE2 StateINSTRUCTION SET REFERENCE, A-MFXSAVE—Save x87 FPU, MMX Technology, SSE, and SSE2

Pagina 407 - Vol. 2A 3-361

Vol. 2A 3-419INSTRUCTION SET REFERENCE, A-MFXSAVE—Save x87 FPU, MMX Technology, SSE, and SSE2 StateThe destination operand contains the first byte of

Pagina 408 - FPREM1—Partial Remainder

3-420 Vol. 2A FXSAVE—Save x87 FPU, MMX Technology, SSE, and SSE2 StateINSTRUCTION SET REFERENCE, A-MTable 3-49. Field Definitions Field DefinitionFCW

Pagina 409

Vol. 2A 3-421INSTRUCTION SET REFERENCE, A-MFXSAVE—Save x87 FPU, MMX Technology, SSE, and SSE2 StateThe FXSAVE instruction saves an abridged version of

Pagina 410

3-422 Vol. 2A FXSAVE—Save x87 FPU, MMX Technology, SSE, and SSE2 StateINSTRUCTION SET REFERENCE, A-MHere, a 1 is saved for any valid, zero, or special

Pagina 411 - FPTAN—Partial Tangent

Vol. 2A 3-423INSTRUCTION SET REFERENCE, A-MFXSAVE—Save x87 FPU, MMX Technology, SSE, and SSE2 StateThe J-bit is defined to be the 1-bit binary integer

Pagina 412

Vol. 2A 3-1CHAPTER 3INSTRUCTION SET REFERENCE, A-MThis chapter describes the instruction set for the Intel 64 and IA-32 architectures (A-M) in IA-32e,

Pagina 413

3-424 Vol. 2A FXSAVE—Save x87 FPU, MMX Technology, SSE, and SSE2 StateINSTRUCTION SET REFERENCE, A-MXMM2 192XMM3 208XMM4 224XMM5 240XMM6 256XMM7 272XM

Pagina 414 - FRNDINT—Round to Integer

Vol. 2A 3-425INSTRUCTION SET REFERENCE, A-MFXSAVE—Save x87 FPU, MMX Technology, SSE, and SSE2 StateOperationIF 64-Bit ModeTHENIF REX.W = 1Reserved ST4

Pagina 415

3-426 Vol. 2A FXSAVE—Save x87 FPU, MMX Technology, SSE, and SSE2 StateINSTRUCTION SET REFERENCE, A-MTHENDEST ← Save64BitPromotedFxsave(x87 FPU, MMX, X

Pagina 416 - FRSTOR—Restore x87 FPU State

Vol. 2A 3-427INSTRUCTION SET REFERENCE, A-MFXSAVE—Save x87 FPU, MMX Technology, SSE, and SSE2 State#UD If CR0.EM[bit 2] = 1.If CPUID.01H:EDX.FXSR[bit

Pagina 417

3-428 Vol. 2A FXSAVE—Save x87 FPU, MMX Technology, SSE, and SSE2 StateINSTRUCTION SET REFERENCE, A-MImplementation NoteThe order in which the processo

Pagina 418

Vol. 2A 3-429INSTRUCTION SET REFERENCE, A-MFXTRACT—Extract Exponent and SignificandFXTRACT—Extract Exponent and SignificandDescriptionSeparates the so

Pagina 419

3-430 Vol. 2A FXTRACT—Extract Exponent and SignificandINSTRUCTION SET REFERENCE, A-M#IA Source operand is an SNaN value or unsupported format.#Z ST(0)

Pagina 420

Vol. 2A 3-431INSTRUCTION SET REFERENCE, A-MFYL2X—Compute y * log2xFYL2X—Compute y ∗ log2xDescriptionComputes (ST(1) ∗ log2 (ST(0))), stores the result

Pagina 421

3-432 Vol. 2A FYL2X—Compute y * log2xINSTRUCTION SET REFERENCE, A-MOperationST(1) ← ST(1) ∗ log2ST(0);PopRegisterStack;FPU Flags AffectedC1 Set to 0 i

Pagina 422

Vol. 2A 3-433INSTRUCTION SET REFERENCE, A-MFYL2XP1—Compute y * log2(x +1)FYL2XP1—Compute y ∗ log2(x +1)DescriptionComputes (ST(1) ∗ log2(ST(0) + 1.0))

Pagina 423 - FSCALE—Scale

3-2 Vol. 2AINSTRUCTION SET REFERENCE, A-M3.1.1.1 Opcode Column in the Instruction Summary TableThe “Opcode” column in the table above shows the obje

Pagina 424 - 3-378 Vol. 2A FSCALE—Scale

3-434 Vol. 2A FYL2XP1—Compute y * log2(x +1)INSTRUCTION SET REFERENCE, A-Mequation is used to calculate the scale factor for a particular logarithm ba

Pagina 425 - FSIN—Sine

Vol. 2A 3-435INSTRUCTION SET REFERENCE, A-MHADDPD—Packed Double-FP Horizontal AddHADDPD—Packed Double-FP Horizontal AddDescriptionAdds the double-prec

Pagina 426 - 3-380 Vol. 2A FSIN—Sine

3-436 Vol. 2A HADDPD—Packed Double-FP Horizontal AddINSTRUCTION SET REFERENCE, A-MOperationxmm1[63:0] = xmm1[63:0] + xmm1[127:64];xmm1[127:64] = xmm2/

Pagina 427 - FSINCOS—Sine and Cosine

Vol. 2A 3-437INSTRUCTION SET REFERENCE, A-MHADDPD—Packed Double-FP Horizontal Add#UD If CR0.EM[bit 2] = 1.For an unmasked Streaming SIMD Extensions nu

Pagina 428

3-438 Vol. 2A HADDPD—Packed Double-FP Horizontal AddINSTRUCTION SET REFERENCE, A-M#UD If an unmasked SIMD floating-point exception and CR4.OSXM-MEXCP

Pagina 429

Vol. 2A 3-439INSTRUCTION SET REFERENCE, A-MHADDPS—Packed Single-FP Horizontal AddHADDPS—Packed Single-FP Horizontal AddDescriptionAdds the single-prec

Pagina 430 - FSQRT—Square Root

3-440 Vol. 2A HADDPS—Packed Single-FP Horizontal AddINSTRUCTION SET REFERENCE, A-MIn 64-bit mode, use of the REX.R prefix permits this instruction to

Pagina 431

Vol. 2A 3-441INSTRUCTION SET REFERENCE, A-MHADDPS—Packed Single-FP Horizontal AddReal Address Mode ExceptionsGP(0) If any part of the operand would l

Pagina 432

3-442 Vol. 2A HADDPS—Packed Single-FP Horizontal AddINSTRUCTION SET REFERENCE, A-M#PF(fault-code) For a page fault.#NM If CR0.TS[bit 3] = 1. #XM If

Pagina 433

Vol. 2A 3-443INSTRUCTION SET REFERENCE, A-MHLT—HaltHLT—HaltDescriptionStops instruction execution and places the processor in a HALT state. An enabled

Pagina 434

Vol. 2A 3-3INSTRUCTION SET REFERENCE, A-M3.1.1.2 Instruction Column in the Opcode Summary TableThe “Instruction” column gives the syntax of the inst

Pagina 435

3-444 Vol. 2A HLT—HaltINSTRUCTION SET REFERENCE, A-MCompatibility Mode ExceptionsSame exceptions as in protected mode.64-Bit Mode ExceptionsSame excep

Pagina 436

Vol. 2A 3-445INSTRUCTION SET REFERENCE, A-MHSUBPD—Packed Double-FP Horizontal SubtractHSUBPD—Packed Double-FP Horizontal SubtractDescriptionThe HSUBPD

Pagina 437 - Vol. 2A 3-391

3-446 Vol. 2A HSUBPD—Packed Double-FP Horizontal SubtractINSTRUCTION SET REFERENCE, A-MOperationxmm1[63:0] = xmm1[63:0] − xmm1[127:64];xmm1[127:64] =

Pagina 438

Vol. 2A 3-447INSTRUCTION SET REFERENCE, A-MHSUBPD—Packed Double-FP Horizontal Subtract#UD If CR0.EM[bit 2] = 1.For an unmasked Streaming SIMD Extensi

Pagina 439 - Vol. 2A 3-393

3-448 Vol. 2A HSUBPD—Packed Double-FP Horizontal SubtractINSTRUCTION SET REFERENCE, A-MIf CPUID feature flag SSE3 is 0.If the LOCK prefix is used.

Pagina 440

Vol. 2A 3-449INSTRUCTION SET REFERENCE, A-MHSUBPS—Packed Single-FP Horizontal SubtractHSUBPS—Packed Single-FP Horizontal SubtractDescriptionSubtracts

Pagina 441

3-450 Vol. 2A HSUBPS—Packed Single-FP Horizontal SubtractINSTRUCTION SET REFERENCE, A-MIn 64-bit mode, use of the REX.R prefix permits this instructio

Pagina 442

Vol. 2A 3-451INSTRUCTION SET REFERENCE, A-MHSUBPS—Packed Single-FP Horizontal SubtractNumeric ExceptionsOverflow, Underflow, Invalid, Precision, Denor

Pagina 443

3-452 Vol. 2A HSUBPS—Packed Single-FP Horizontal SubtractINSTRUCTION SET REFERENCE, A-M#NM If CR0.TS[bit 3] = 1.#XM For an unmasked Streaming SIMD E

Pagina 444 - FSUB/FSUBP/FISUB—Subtract

Vol. 2A 3-453INSTRUCTION SET REFERENCE, A-MIDIV—Signed DivideIDIV—Signed DivideDescriptionDivides the (signed) value in the AX, DX:AX, or EDX:EAX (div

Pagina 445 - = result)

Vol. 2A vCONTENTSPAGECLFLUSH—Flush Cache Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-

Pagina 446

3-4 Vol. 2AINSTRUCTION SET REFERENCE, A-M• ptr16:16, ptr16:32 and ptr16:64 — A far pointer, typically to a code segment different from that of the ins

Pagina 447

3-454 Vol. 2A IDIV—Signed DivideINSTRUCTION SET REFERENCE, A-MOperationIF SRC = 0THEN #DE; (* Divide error *) FI;IF OperandSize = 8 (* Word/byte opera

Pagina 448

Vol. 2A 3-455INSTRUCTION SET REFERENCE, A-MIDIV—Signed DivideTHEN #DE; (* Divide error *) ELSEEAX ← temp;EDX ← EDXE:AX SignedModulus SRC;FI;FI;ELSE IF

Pagina 449 - − DEST; FI;

3-456 Vol. 2A IDIV—Signed DivideINSTRUCTION SET REFERENCE, A-M#GP If a memory operand effective address is outside the CS, DS, ES, FS, or GS segment l

Pagina 450 - FSUBRP

Vol. 2A 3-457INSTRUCTION SET REFERENCE, A-MIMUL—Signed MultiplyIMUL—Signed MultiplyOpcode Instruction 64-Bit ModeCompat/Leg ModeDescriptionF6 /5 IMUL

Pagina 451

3-458 Vol. 2A IMUL—Signed MultiplyINSTRUCTION SET REFERENCE, A-MDescriptionPerforms a signed multiplication of two operands. This instruction has thre

Pagina 452 - FTST—TEST

Vol. 2A 3-459INSTRUCTION SET REFERENCE, A-MIMUL—Signed Multiplysigned or unsigned. The CF and OF flags, however, cannot be used to determine if the up

Pagina 453

3-460 Vol. 2A IMUL—Signed MultiplyINSTRUCTION SET REFERENCE, A-MELSE IF (NumberOfOperands = 2)THEN temp ← DEST ∗ SRC (* Signed multiplication; temp is

Pagina 454

Vol. 2A 3-461INSTRUCTION SET REFERENCE, A-MIMUL—Signed Multiply#SS If a memory operand effective address is outside the SS segment limit.#UD If the L

Pagina 455 - = FUCOMPP

3-462 Vol. 2A IN—Input from PortINSTRUCTION SET REFERENCE, A-MIN—Input from PortDescriptionCopies the value from the I/O port specified with the secon

Pagina 456

Vol. 2A 3-463INSTRUCTION SET REFERENCE, A-MIN—Input from PortDEST ← SRC; (* Read from selected I/O port *)FI;ELSE (Real Mode or Protected Mode with CP

Pagina 457 - FXAM—ExamineModR/M

Vol. 2A 3-5INSTRUCTION SET REFERENCE, A-M• r/m32 — A doubleword general-purpose register or memory operand used for instructions whose operand-size at

Pagina 458

3-464 Vol. 2A INC—Increment by 1INSTRUCTION SET REFERENCE, A-MINC—Increment by 1DescriptionAdds 1 to the destination operand, while preserving the sta

Pagina 459

Vol. 2A 3-465INSTRUCTION SET REFERENCE, A-MINC—Increment by 1Protected Mode Exceptions#GP(0) If the destination operand is located in a non-writable s

Pagina 460

3-466 Vol. 2A INC—Increment by 1INSTRUCTION SET REFERENCE, A-M#AC(0) If alignment checking is enabled and an unaligned memory reference is made while

Pagina 461

Vol. 2A 3-467INSTRUCTION SET REFERENCE, A-MINS/INSB/INSW/INSD—Input from Port to StringINS/INSB/INSW/INSD—Input from Port to StringDescriptionCopies t

Pagina 462

3-468 Vol. 2A INS/INSB/INSW/INSD—Input from Port to StringINSTRUCTION SET REFERENCE, A-Mdestination operand symbol must specify the correct type (size

Pagina 463

Vol. 2A 3-469INSTRUCTION SET REFERENCE, A-MINS/INSB/INSW/INSD—Input from Port to StringIF (Byte transfer)THEN IF DF = 0THEN (E)DI ← (E)DI + 1; ELSE (E

Pagina 464 - Memory Region

3-470 Vol. 2A INS/INSB/INSW/INSD—Input from Port to StringINSTRUCTION SET REFERENCE, A-M#AC(0) If alignment checking is enabled and an unaligned memor

Pagina 465 - Memory Region (Contd.)

Vol. 2A 3-471INSTRUCTION SET REFERENCE, A-MINT n/INTO/INT 3—Call to Interrupt ProcedureINT n/INTO/INT 3—Call to Interrupt ProcedureDescriptionThe INT

Pagina 466

3-472 Vol. 2A INT n/INTO/INT 3—Call to Interrupt ProcedureINSTRUCTION SET REFERENCE, A-Mwith the IRET instruction, which pops the EFLAGS information a

Pagina 467 - Vol. 2A 3-421

Vol. 2A 3-473INSTRUCTION SET REFERENCE, A-MINT n/INTO/INT 3—Call to Interrupt ProcedureWhen the processor is executing in virtual-8086 mode, the IOPL

Pagina 468

3-6 Vol. 2AINSTRUCTION SET REFERENCE, A-M• Sreg — A segment register. The segment register bit assignments are ES = 0, CS = 1, SS = 2, DS = 3, FS = 4,

Pagina 469 - IA-32e Mode Operation

3-474 Vol. 2A INT n/INTO/INT 3—Call to Interrupt ProcedureINSTRUCTION SET REFERENCE, A-MCS ← IDT(Descriptor (vector_number ∗ 4), selector));EIP ← IDT(

Pagina 470 - Default OperandSize

Vol. 2A 3-475INSTRUCTION SET REFERENCE, A-MINT n/INTO/INT 3—Call to Interrupt Procedureor index not within GDT limitsTHEN #GP(TSS selector); FI;Access

Pagina 471 - Default OperandSize (Contd.)

3-476 Vol. 2A INT n/INTO/INT 3—Call to Interrupt ProcedureINSTRUCTION SET REFERENCE, A-MIF VM = 1 THEN #GP(new code segment selector); FI;IF code segm

Pagina 472

Vol. 2A 3-477INSTRUCTION SET REFERENCE, A-MINT n/INTO/INT 3—Call to Interrupt Procedureor stack segment does not indicate writable data segmentTHEN #T

Pagina 473

3-478 Vol. 2A INT n/INTO/INT 3—Call to Interrupt ProcedureINSTRUCTION SET REFERENCE, A-MFI;IF 32-bit gateTHENPush(far pointer to old stack); (* Old SS

Pagina 474 - Implementation Note

Vol. 2A 3-479INSTRUCTION SET REFERENCE, A-MINT n/INTO/INT 3—Call to Interrupt ProcedureNewESP ← stack address;ELSE (* TSS is 16-bit *)TSSstackAddress

Pagina 475

3-480 Vol. 2A INT n/INTO/INT 3—Call to Interrupt ProcedureINSTRUCTION SET REFERENCE, A-MTempSS ← SS;TempESP ← ESP;SS:ESP ← TSS(SS0:ESP0); (* Change to

Pagina 476

Vol. 2A 3-481INSTRUCTION SET REFERENCE, A-MINT n/INTO/INT 3—Call to Interrupt ProcedureIF instruction pointer not within code segment limitTHEN #GP(0)

Pagina 477 - FYL2X—Compute y ∗ log

3-482 Vol. 2A INT n/INTO/INT 3—Call to Interrupt ProcedureINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#GP(0) If the instruction pointer in

Pagina 478

Vol. 2A 3-483INSTRUCTION SET REFERENCE, A-MINT n/INTO/INT 3—Call to Interrupt ProcedureReal-Address Mode Exceptions#GP If a memory operand effective a

Pagina 479 - FYL2XP1—Compute y ∗ log

Vol. 2A 3-7INSTRUCTION SET REFERENCE, A-M• N.P. — Indicates the REX prefix does not affect the legacy instruction in 64-bit mode.• N.I. — Indicates th

Pagina 480

3-484 Vol. 2A INT n/INTO/INT 3—Call to Interrupt ProcedureINSTRUCTION SET REFERENCE, A-MIf the stack segment for the TSS is not a writable data segmen

Pagina 481

Vol. 2A 3-485INSTRUCTION SET REFERENCE, A-MINT n/INTO/INT 3—Call to Interrupt Procedure#TS(selector) If an attempt to load RSP from the TSS causes an

Pagina 482

3-486 Vol. 2A INVD—Invalidate Internal CachesINSTRUCTION SET REFERENCE, A-MINVD—Invalidate Internal CachesDescriptionInvalidates (flushes) the process

Pagina 483

Vol. 2A 3-487INSTRUCTION SET REFERENCE, A-MINVD—Invalidate Internal CachesProtected Mode Exceptions#GP(0) If the current privilege level is not 0.#UD

Pagina 484

3-488 Vol. 2A INVLPG—Invalidate TLB EntryINSTRUCTION SET REFERENCE, A-MINVLPG—Invalidate TLB EntryDescriptionInvalidates (flushes) the translation loo

Pagina 485

Vol. 2A 3-489INSTRUCTION SET REFERENCE, A-MINVLPG—Invalidate TLB EntryReal-Address Mode Exceptions#UD Operand is a register.If the LOCK prefix is used

Pagina 486 - Exceptions

3-490 Vol. 2A IRET/IRETD—Interrupt ReturnINSTRUCTION SET REFERENCE, A-MIRET/IRETD—Interrupt ReturnDescriptionReturns program control from an exception

Pagina 487

Vol. 2A 3-491INSTRUCTION SET REFERENCE, A-MIRET/IRETD—Interrupt ReturnAs with a real-address mode interrupt return, the IRET instruction pops the retu

Pagina 488

3-492 Vol. 2A IRET/IRETD—Interrupt ReturnINSTRUCTION SET REFERENCE, A-MEFLAGS ← (tempEFLAGS AND 257FD5H) OR (EFLAGS AND 1A0000H);ELSE (* OperandSize =

Pagina 489 - HLT—Halt

Vol. 2A 3-493INSTRUCTION SET REFERENCE, A-MIRET/IRETD—Interrupt ReturnELSE IF OperandSize = 32THENIF top 12 bytes of stack not within stack limitsTHEN

Pagina 490

3-8 Vol. 2AINSTRUCTION SET REFERENCE, A-Maddress contained in register SI relative to the SI register’s default segment (DS) or the overridden segment

Pagina 491

3-494 Vol. 2A IRET/IRETD—Interrupt ReturnINSTRUCTION SET REFERENCE, A-MTHEN #GP(0); FI;EIP ← Pop();EIP ← EIP AND 0000FFFFH;CS ← Pop(); (* 16-bit pop *

Pagina 492 - − xmm2/m128[127:64];

Vol. 2A 3-495INSTRUCTION SET REFERENCE, A-MIRET/IRETD—Interrupt ReturnIF EIP is not within code segment limit THEN #GP(0); FI;END;PROTECTED-MODE-RETUR

Pagina 493

3-496 Vol. 2A IRET/IRETD—Interrupt ReturnINSTRUCTION SET REFERENCE, A-M EFLAGS(IOPL) ← tempEFLAGS; IF OperandSize = 32 or OperandSize = 64THEN EFLAGS(

Pagina 494 - If the LOCK prefix is used

Vol. 2A 3-497INSTRUCTION SET REFERENCE, A-MIRET/IRETD—Interrupt ReturnIF CPL = 0THENEFLAGS(IOPL) ← tempEFLAGS;IF OperandSize = 32THEN EFLAGS(VM, VIF,

Pagina 495

3-498 Vol. 2A IRET/IRETD—Interrupt ReturnINSTRUCTION SET REFERENCE, A-MFlags AffectedAll the flags and fields in the EFLAGS register are potentially m

Pagina 496 - − xmm2/m128[127:96];

Vol. 2A 3-499INSTRUCTION SET REFERENCE, A-MIRET/IRETD—Interrupt ReturnVirtual-8086 Mode Exceptions#GP(0) If the return instruction pointer is not with

Pagina 497

3-500 Vol. 2A IRET/IRETD—Interrupt ReturnINSTRUCTION SET REFERENCE, A-MIf the stack segment selector RPL is not equal to the RPL of the return code se

Pagina 498

Vol. 2A 3-501INSTRUCTION SET REFERENCE, A-MJcc—Jump if Condition Is MetJcc—Jump if Condition Is MetOpcode Instruction 64-Bit ModeCompat/Leg ModeDescri

Pagina 499 - IDIV—Signed Divide

3-502 Vol. 2A Jcc—Jump if Condition Is MetINSTRUCTION SET REFERENCE, A-M75 cb JNZ rel8 Valid Valid Jump short if not zero (ZF=0).70 cb JO rel8 Valid V

Pagina 500 - = 8 (* Word/byte operation *)

Vol. 2A 3-503INSTRUCTION SET REFERENCE, A-MJcc—Jump if Condition Is Met0F 8C cw JL rel16 N.S. Valid Jump near if less (SF≠ OF). Not supported in 64-bi

Pagina 501

Vol. 2A 3-9INSTRUCTION SET REFERENCE, A-MAttribute for Stack” in Chapter 6, “Procedure Calls, Interrupts, and Exceptions,” of the Intel® 64 and IA-32

Pagina 502

3-504 Vol. 2A Jcc—Jump if Condition Is MetINSTRUCTION SET REFERENCE, A-M0F 8C cd JNGE rel32 Valid Valid Jump near if not greater or equal (SF≠ OF).0F

Pagina 503 - IMUL—Signed Multiply

Vol. 2A 3-505INSTRUCTION SET REFERENCE, A-MJcc—Jump if Condition Is MetDescriptionChecks the state of one or more of the status flags in the EFLAGS re

Pagina 504

3-506 Vol. 2A Jcc—Jump if Condition Is MetINSTRUCTION SET REFERENCE, A-Mchecked is determined by the address-size attribute. These instructions are us

Pagina 505

Vol. 2A 3-507INSTRUCTION SET REFERENCE, A-MJcc—Jump if Condition Is MetCompatibility Mode ExceptionsSame exceptions as in protected mode.64-Bit Mode E

Pagina 506

3-508 Vol. 2A JMP—JumpINSTRUCTION SET REFERENCE, A-MJMP—JumpDescriptionTransfers program control to a different point in the instruction stream withou

Pagina 507

Vol. 2A 3-509INSTRUCTION SET REFERENCE, A-MJMP—Jump• Short jump—A near jump where the jump range is limited to –128 to +127 from the current EIP value

Pagina 508 - IN—Input from Port

3-510 Vol. 2A JMP—JumpINSTRUCTION SET REFERENCE, A-M• A task switch.(The JMP instruction cannot be used to perform inter-privilege-level far jumps.)In

Pagina 509 - Vol. 2A 3-463

Vol. 2A 3-511INSTRUCTION SET REFERENCE, A-MJMP—Jumpand save the previous task link information, allowing a return to the calling task with an IRET ins

Pagina 510 - INC—Increment by 1

3-512 Vol. 2A JMP—JumpINSTRUCTION SET REFERENCE, A-MFI;IF far jump and (PE = 0 or (PE = 1 AND VM = 1)) (* Real-address or virtual-8086 mode *) THEN te

Pagina 511

Vol. 2A 3-513INSTRUCTION SET REFERENCE, A-MJMP—JumpTHEN GP(new code segment selector); FI; IF DPL > CPL THEN #GP(segment selector); FI; IF segment

Pagina 512

3-10 Vol. 2AINSTRUCTION SET REFERENCE, A-Mzero (00H); if it is greater than 65535, it is represented by the saturated value 65535 (FFFFH).• LowOrderWo

Pagina 513

3-514 Vol. 2A JMP—JumpINSTRUCTION SET REFERENCE, A-MTHEN #GP(0); FI;IF call gate code-segment selector index outside descriptor table limitsTHEN #GP(c

Pagina 514

Vol. 2A 3-515INSTRUCTION SET REFERENCE, A-MJMP—Jumpor TSS DPL < TSS segment-selector RPLor TSS descriptor indicates TSS not availableTHEN #GP(TSS s

Pagina 515

3-516 Vol. 2A JMP—JumpINSTRUCTION SET REFERENCE, A-MIf the segment selector for a TSS has its local/global bit set for local.If a TSS segment descript

Pagina 516

Vol. 2A 3-517INSTRUCTION SET REFERENCE, A-MJMP—JumpIf target offset in destination operand is non-canonical.If target offset in destination operand is

Pagina 517

3-518 Vol. 2A LAHF—Load Status Flags into AH RegisterINSTRUCTION SET REFERENCE, A-MLAHF—Load Status Flags into AH RegisterDescriptionThis instruction

Pagina 518 - Table 3-56. Decision Table

Vol. 2A 3-519INSTRUCTION SET REFERENCE, A-MLAHF—Load Status Flags into AH Register64-Bit Mode Exceptions#UD If CPUID.80000001H:ECX.LAHF-SAHF[bit 0] =

Pagina 519

3-520 Vol. 2A LAR—Load Access Rights ByteINSTRUCTION SET REFERENCE, A-MLAR—Load Access Rights ByteDescriptionLoads the access rights from the segment

Pagina 520 - = 1, task gate *)

Vol. 2A 3-521INSTRUCTION SET REFERENCE, A-MLAR—Load Access Rights Byte• If the segment is not a conforming code segment, it checks that the specified

Pagina 521 - Vol. 2A 3-475

3-522 Vol. 2A LAR—Load Access Rights ByteINSTRUCTION SET REFERENCE, A-MZF = 0; ELSE IF SegmentDescriptor(Type) ≠ conforming code segmentand (CPL >

Pagina 522

Vol. 2A 3-523INSTRUCTION SET REFERENCE, A-MLAR—Load Access Rights ByteVirtual-8086 Mode Exceptions#UD The LAR instruction cannot be executed in virtua

Pagina 523 - Vol. 2A 3-477

Vol. 2A 3-11INSTRUCTION SET REFERENCE, A-MThe addressed bit is numbered (Offset MOD 8) within the byte at address (BitBase + (BitOffset DIV 8)) where

Pagina 524

3-524 Vol. 2A LDDQU—Load Unaligned Integer 128 BitsINSTRUCTION SET REFERENCE, A-MLDDQU—Load Unaligned Integer 128 BitsDescriptionThe instruction is fu

Pagina 525 - = 0; FI;

Vol. 2A 3-525INSTRUCTION SET REFERENCE, A-MLDDQU—Load Unaligned Integer 128 BitsIntel C/C++ Compiler Intrinsic EquivalentLDDQU __m128i _mm_lddqu_si128

Pagina 526

3-526 Vol. 2A LDDQU—Load Unaligned Integer 128 BitsINSTRUCTION SET REFERENCE, A-MCompatibility Mode ExceptionsSame exceptions as in protected mode.64-

Pagina 527

Vol. 2A 3-527INSTRUCTION SET REFERENCE, A-MLDMXCSR—Load MXCSR RegisterLDMXCSR—Load MXCSR RegisterDescriptionLoads the source operand into the MXCSR co

Pagina 528

3-528 Vol. 2A LDMXCSR—Load MXCSR RegisterINSTRUCTION SET REFERENCE, A-MIf CPUID.01H:EDX.SSE[bit 25] = 0.If the LOCK prefix is used.#AC(0) If alignment

Pagina 529

Vol. 2A 3-529INSTRUCTION SET REFERENCE, A-MLDS/LES/LFS/LGS/LSS—Load Far PointerLDS/LES/LFS/LGS/LSS—Load Far PointerDescriptionLoads a far pointer (seg

Pagina 530

3-530 Vol. 2A LDS/LES/LFS/LGS/LSS—Load Far PointerINSTRUCTION SET REFERENCE, A-MIf one of these instructions is executed in protected mode, additional

Pagina 531 - Vol. 2A 3-485

Vol. 2A 3-531INSTRUCTION SET REFERENCE, A-MLDS/LES/LFS/LGS/LSS—Load Far PointerFI;SegmentRegister ← SegmentSelector(SRC) ;SegmentRegister ← SegmentDes

Pagina 532

3-532 Vol. 2A LDS/LES/LFS/LGS/LSS—Load Far PointerINSTRUCTION SET REFERENCE, A-MFI;DEST ← Offset(SRC);Real-Address or Virtual-8086 ModeSegmentRegister

Pagina 533

Vol. 2A 3-533INSTRUCTION SET REFERENCE, A-MLDS/LES/LFS/LGS/LSS—Load Far Pointer#SS If a memory operand effective address is outside the SS segment lim

Pagina 534 - INVLPG—Invalidate TLB Entry

3-12 Vol. 2AINSTRUCTION SET REFERENCE, A-MSee Appendix C, “InteL® C/C++ Compiler Intrinsics and Functional Equivalents,” in the Intel® 64 and IA-32 Ar

Pagina 535

3-534 Vol. 2A LDS/LES/LFS/LGS/LSS—Load Far PointerINSTRUCTION SET REFERENCE, A-M#NP(selector) If FS, or GS register is being loaded with a non-NULL se

Pagina 536 - IRET/IRETD—Interrupt Return

Vol. 2A 3-535INSTRUCTION SET REFERENCE, A-MLEA—Load Effective AddressLEA—Load Effective AddressDescriptionComputes the effective address of the second

Pagina 537

3-536 Vol. 2A LEA—Load Effective AddressINSTRUCTION SET REFERENCE, A-MOperationIF OperandSize = 16 and AddressSize = 16THEN DEST ← EffectiveAddress(SR

Pagina 538

Vol. 2A 3-537INSTRUCTION SET REFERENCE, A-MLEA—Load Effective AddressDEST ← temp[0:15]; (* 16-bit address *)FI;ELSE IF OperandSize = 32 and AddressSiz

Pagina 539 - Vol. 2A 3-493

3-538 Vol. 2A LEAVE—High Level Procedure ExitINSTRUCTION SET REFERENCE, A-MLEAVE—High Level Procedure ExitDescriptionReleases the stack frame set up b

Pagina 540

Vol. 2A 3-539INSTRUCTION SET REFERENCE, A-MLEAVE—High Level Procedure ExitFlags AffectedNone.Protected Mode Exceptions#SS(0) If the EBP register point

Pagina 541 - Vol. 2A 3-495

3-540 Vol. 2A LFENCE—Load FenceINSTRUCTION SET REFERENCE, A-MLFENCE—Load FenceDescriptionPerforms a serializing operation on all load-from-memory inst

Pagina 542

Vol. 2A 3-541INSTRUCTION SET REFERENCE, A-MLGDT/LIDT—Load Global/Interrupt Descriptor Table RegisterLGDT/LIDT—Load Global/Interrupt Descriptor Table R

Pagina 543 - Vol. 2A 3-497

3-542 Vol. 2A LGDT/LIDT—Load Global/Interrupt Descriptor Table RegisterINSTRUCTION SET REFERENCE, A-MIDTR(Limit) ← SRC[0:15];IDTR(Base) ← SRC[16:47];

Pagina 544

Vol. 2A 3-543INSTRUCTION SET REFERENCE, A-MLGDT/LIDT—Load Global/Interrupt Descriptor Table RegisterReal-Address Mode Exceptions#UD If source operand

Pagina 545

Vol. 2A 3-13INSTRUCTION SET REFERENCE, A-M• The __m128i data type can hold sixteen byte, eight word, or four doubleword, or two quadword integer value

Pagina 546

3-544 Vol. 2A LLDT—Load Local Descriptor Table RegisterINSTRUCTION SET REFERENCE, A-MLLDT—Load Local Descriptor Table RegisterDescriptionLoads the sou

Pagina 547 - Jcc—Jump if Condition Is Met

Vol. 2A 3-545INSTRUCTION SET REFERENCE, A-MLLDT—Load Local Descriptor Table RegisterELSE LDTR ← INVALIDFI;Flags AffectedNone.Protected Mode Exceptions

Pagina 548

3-546 Vol. 2A LLDT—Load Local Descriptor Table RegisterINSTRUCTION SET REFERENCE, A-M#PF(fault-code) If a page fault occurs.#UD If the LOCK prefix is

Pagina 549 - Vol. 2A 3-503

Vol. 2A 3-547INSTRUCTION SET REFERENCE, A-MLMSW—Load Machine Status WordLMSW—Load Machine Status WordDescriptionLoads the source operand into the mach

Pagina 550

3-548 Vol. 2A LMSW—Load Machine Status WordINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#GP(0) If the current privilege level is not 0.If a

Pagina 551

Vol. 2A 3-549INSTRUCTION SET REFERENCE, A-MLOCK—Assert LOCK# Signal PrefixLOCK—Assert LOCK# Signal PrefixDescriptionCauses the processor’s LOCK# signa

Pagina 552

3-550 Vol. 2A LOCK—Assert LOCK# Signal PrefixINSTRUCTION SET REFERENCE, A-MOperationAssertLOCK#(DurationOfAccompaningInstruction);Flags AffectedNone.P

Pagina 553

Vol. 2A 3-551INSTRUCTION SET REFERENCE, A-MLODS/LODSB/LODSW/LODSD/LODSQ—Load StringLODS/LODSB/LODSW/LODSD/LODSQ—Load StringDescriptionLoads a byte, wo

Pagina 554 - JMP—Jump

3-552 Vol. 2A LODS/LODSB/LODSW/LODSD/LODSQ—Load StringINSTRUCTION SET REFERENCE, A-Mcorrect location. The location is always specified by the DS:(E)SI

Pagina 555 - Vol. 2A 3-509

Vol. 2A 3-553INSTRUCTION SET REFERENCE, A-MLODS/LODSB/LODSW/LODSD/LODSQ—Load StringFI;FI;ELSE IF RAX ← SRC; (* Quadword load *)THEN IF DF = 0THEN (R)S

Pagina 556 - • A task switch

CONTENTSviVol. 2APAGEDouble-Precision Floating-Point Value. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-231CVTSS2SI—Conver

Pagina 557

3-14 Vol. 2AINSTRUCTION SET REFERENCE, A-MSome intrinsics are “composites” because they require more than one instruction to implement them. You shoul

Pagina 558 - 3-512 Vol. 2A JMP—Jump

3-554 Vol. 2A LODS/LODSB/LODSW/LODSD/LODSQ—Load StringINSTRUCTION SET REFERENCE, A-MCompatibility Mode ExceptionsSame exceptions as in protected mode.

Pagina 559 - Vol. 2A 3-513

Vol. 2A 3-555INSTRUCTION SET REFERENCE, A-MLOOP/LOOPcc—Loop According to ECX CounterLOOP/LOOPcc—Loop According to ECX CounterDescriptionPerforms a loo

Pagina 560 - 3-514 Vol. 2A JMP—Jump

3-556 Vol. 2A LOOP/LOOPcc—Loop According to ECX CounterINSTRUCTION SET REFERENCE, A-MIF (Instruction ← LOOPE) or (Instruction ← LOOPZ)THEN IF (ZF = 1)

Pagina 561

Vol. 2A 3-557INSTRUCTION SET REFERENCE, A-MLOOP/LOOPcc—Loop According to ECX CounterProtected Mode Exceptions#GP(0) If the offset being jumped to is b

Pagina 562

3-558 Vol. 2A LSL—Load Segment LimitINSTRUCTION SET REFERENCE, A-MLSL—Load Segment LimitDescriptionLoads the unscrambled segment limit from the segmen

Pagina 563 - Vol. 2A 3-517

Vol. 2A 3-559INSTRUCTION SET REFERENCE, A-MLSL—Load Segment Limit• Checks that the descriptor type is valid for this instruction. All code and data se

Pagina 564

3-560 Vol. 2A LSL—Load Segment LimitINSTRUCTION SET REFERENCE, A-MRead segment descriptor;IF SegmentDescriptor(Type) ≠ conforming code segmentand (CPL

Pagina 565

Vol. 2A 3-561INSTRUCTION SET REFERENCE, A-MLSL—Load Segment LimitCompatibility Mode ExceptionsSame exceptions as in protected mode.64-Bit Mode Excepti

Pagina 566 - LAR—Load Access Rights Byte

3-562 Vol. 2A LTR—Load Task RegisterINSTRUCTION SET REFERENCE, A-MLTR—Load Task RegisterDescriptionLoads the source operand into the segment selector

Pagina 567

Vol. 2A 3-563INSTRUCTION SET REFERENCE, A-MLTR—Load Task RegisterFlags AffectedNone.Protected Mode Exceptions#GP(0) If the current privilege level is

Pagina 568 - ≠ conforming code segment

Vol. 2A 3-15INSTRUCTION SET REFERENCE, A-Mletter mnemonic with the corresponding interrupt vector number and exception name. See Chapter 5, “Interrupt

Pagina 569

3-564 Vol. 2A LTR—Load Task RegisterINSTRUCTION SET REFERENCE, A-M#NP(selector) If the TSS is marked not present.#PF(fault-code) If a page fault occur

Pagina 570 - Implementation Notes

Vol. 2A 3-565INSTRUCTION SET REFERENCE, A-MMASKMOVDQU—Store Selected Bytes of Double QuadwordMASKMOVDQU—Store Selected Bytes of Double QuadwordDescrip

Pagina 571

3-566 Vol. 2A MASKMOVDQU—Store Selected Bytes of Double QuadwordINSTRUCTION SET REFERENCE, A-MIn 64-bit mode, use of the REX.R prefix permits this ins

Pagina 572

Vol. 2A 3-567INSTRUCTION SET REFERENCE, A-MMASKMOVDQU—Store Selected Bytes of Double QuadwordVirtual-8086 Mode ExceptionsSame exceptions as in real ad

Pagina 573 - LDMXCSR—Load MXCSR Register

3-568 Vol. 2A MASKMOVQ—Store Selected Bytes of QuadwordINSTRUCTION SET REFERENCE, A-MMASKMOVQ—Store Selected Bytes of QuadwordDescriptionStores select

Pagina 574

Vol. 2A 3-569INSTRUCTION SET REFERENCE, A-MMASKMOVQ—Store Selected Bytes of QuadwordThe MASKMOVQ instruction can be used to improve performance for al

Pagina 575

3-570 Vol. 2A MASKMOVQ—Store Selected Bytes of QuadwordINSTRUCTION SET REFERENCE, A-M#MF If there is a pending FPU exception.#UD If CR0.EM[bit 2] = 1

Pagina 576 - ≠ 3 and RPL ≠ CPL) )

Vol. 2A 3-571INSTRUCTION SET REFERENCE, A-MMAXPD—Return Maximum Packed Double-Precision Floating-Point ValuesMAXPD—Return Maximum Packed Double-Precis

Pagina 577 - Vol. 2A 3-531

3-572 Vol. 2A MAXPD—Return Maximum Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MELSE SRC[127:64]; FI; FI;Intel C/C++ Com

Pagina 578

Vol. 2A 3-573INSTRUCTION SET REFERENCE, A-MMAXPD—Return Maximum Packed Double-Precision Floating-Point ValuesVirtual-8086 Mode ExceptionsSame exceptio

Pagina 579

3-16 Vol. 2AINSTRUCTION SET REFERENCE, A-M3.1.1.12 Real-Address Mode Exceptions SectionThe “Real-Address Mode Exceptions” section lists the exceptio

Pagina 580

3-574 Vol. 2A MAXPS—Return Maximum Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MMAXPS—Return Maximum Packed Single-Preci

Pagina 581 - LEA—Load Effective Address

Vol. 2A 3-575INSTRUCTION SET REFERENCE, A-MMAXPS—Return Maximum Packed Single-Precision Floating-Point ValuesTHEN DEST[127:96]; ELSE SRC[127:96]; FI;

Pagina 582 - = 16 and AddressSize = 64

3-576 Vol. 2A MAXPS—Return Maximum Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MIf CPUID.01H:EDX.SSE[bit 25] = 0.If the

Pagina 583 - = 64 and AddressSize = 64

Vol. 2A 3-577INSTRUCTION SET REFERENCE, A-MMAXSD—Return Maximum Scalar Double-Precision Floating-Point ValueMAXSD—Return Maximum Scalar Double-Precisi

Pagina 584

3-578 Vol. 2A MAXSD—Return Maximum Scalar Double-Precision Floating-Point ValueINSTRUCTION SET REFERENCE, A-MIntel C/C++ Compiler Intrinsic Equivalent

Pagina 585 - Vol. 2A 3-539

Vol. 2A 3-579INSTRUCTION SET REFERENCE, A-MMAXSD—Return Maximum Scalar Double-Precision Floating-Point Value#PF(fault-code) For a page fault.#AC(0) I

Pagina 586 - LFENCE—Load Fence

3-580 Vol. 2A MAXSS—Return Maximum Scalar Single-Precision Floating-Point ValueINSTRUCTION SET REFERENCE, A-MMAXSS—Return Maximum Scalar Single-Precis

Pagina 587

Vol. 2A 3-581INSTRUCTION SET REFERENCE, A-MMAXSS—Return Maximum Scalar Single-Precision Floating-Point ValueSIMD Floating-Point ExceptionsInvalid (inc

Pagina 588

3-582 Vol. 2A MAXSS—Return Maximum Scalar Single-Precision Floating-Point ValueINSTRUCTION SET REFERENCE, A-MCompatibility Mode ExceptionsSame excepti

Pagina 589

Vol. 2A 3-583INSTRUCTION SET REFERENCE, A-MMFENCE—Memory FenceMFENCE—Memory FenceDescriptionPerforms a serializing operation on all load-from-memory a

Pagina 590

Vol. 2A 3-17INSTRUCTION SET REFERENCE, A-M3.1.1.15 SIMD Floating-Point Exceptions SectionThe “SIMD Floating-Point Exceptions” section lists exceptio

Pagina 591 - Vol. 2A 3-545

3-584 Vol. 2A MINPD—Return Minimum Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MMINPD—Return Minimum Packed Double-Preci

Pagina 592

Vol. 2A 3-585INSTRUCTION SET REFERENCE, A-MMINPD—Return Minimum Packed Double-Precision Floating-Point ValuesTHEN DEST[127:64] ELSE SRC[127:64]; FI; F

Pagina 593 - LMSW—Load Machine Status Word

3-586 Vol. 2A MINPD—Return Minimum Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MIf CPUID.01H:EDX.SSE2[bit 26] = 0.If the

Pagina 594

Vol. 2A 3-587INSTRUCTION SET REFERENCE, A-MMINPS—Return Minimum Packed Single-Precision Floating-Point ValuesMINPS—Return Minimum Packed Single-Precis

Pagina 595

3-588 Vol. 2A MINPS—Return Minimum Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MTHEN DEST[127:96] ELSE SRC[127:96]; FI;

Pagina 596

Vol. 2A 3-589INSTRUCTION SET REFERENCE, A-MMINPS—Return Minimum Packed Single-Precision Floating-Point ValuesIf CPUID.01H:EDX.SSE[bit 25] = 0.If the L

Pagina 597

3-590 Vol. 2A MINSD—Return Minimum Scalar Double-Precision Floating-Point ValueINSTRUCTION SET REFERENCE, A-MMINSD—Return Minimum Scalar Double-Precis

Pagina 598

Vol. 2A 3-591INSTRUCTION SET REFERENCE, A-MMINSD—Return Minimum Scalar Double-Precision Floating-Point ValueSIMD Floating-Point ExceptionsInvalid (inc

Pagina 599

3-592 Vol. 2A MINSD—Return Minimum Scalar Double-Precision Floating-Point ValueINSTRUCTION SET REFERENCE, A-MCompatibility Mode ExceptionsSame excepti

Pagina 600

Vol. 2A 3-593INSTRUCTION SET REFERENCE, A-MMINSS—Return Minimum Scalar Single-Precision Floating-Point ValueMINSS—Return Minimum Scalar Single-Precisi

Pagina 601

3-18 Vol. 2AINSTRUCTION SET REFERENCE, A-M3.2 INSTRUCTIONS (A-M)The remainder of this chapter provides descriptions of Intel 64 and IA-32 instructions

Pagina 602

3-594 Vol. 2A MINSS—Return Minimum Scalar Single-Precision Floating-Point ValueINSTRUCTION SET REFERENCE, A-MSIMD Floating-Point ExceptionsInvalid (in

Pagina 603

Vol. 2A 3-595INSTRUCTION SET REFERENCE, A-MMINSS—Return Minimum Scalar Single-Precision Floating-Point ValueCompatibility Mode ExceptionsSame exceptio

Pagina 604 - LSL—Load Segment Limit

3-596 Vol. 2A MONITOR—Set Up Monitor AddressINSTRUCTION SET REFERENCE, A-MMONITOR—Set Up Monitor AddressDescriptionThe MONITOR instruction arms addres

Pagina 605

Vol. 2A 3-597INSTRUCTION SET REFERENCE, A-MMONITOR—Set Up Monitor AddressOperationMONITOR sets up an address range for the monitor hardware using the

Pagina 606 - = 64 (* REX.W used *)

3-598 Vol. 2A MONITOR—Set Up Monitor AddressINSTRUCTION SET REFERENCE, A-M64-Bit Mode Exceptions#GP(0) If the linear address of the operand in the CS,

Pagina 607

Vol. 2A 3-599INSTRUCTION SET REFERENCE, A-MMOV—MoveMOV—MoveOpcode Instruction 64-Bit ModeCompat/Leg ModeDescription88 /r MOV r/m8,r8 Valid Valid Move

Pagina 608 - LTR—Load Task Register

3-600 Vol. 2A MOV—MoveINSTRUCTION SET REFERENCE, A-MDescriptionCopies the second operand (source operand) to the first operand (destination operand).

Pagina 609 - Vol. 2A 3-563

Vol. 2A 3-601INSTRUCTION SET REFERENCE, A-MMOV—Movebelow). The segment descriptor data is obtained from the GDT or LDT entry for the specified segment

Pagina 610

3-602 Vol. 2A MOV—MoveINSTRUCTION SET REFERENCE, A-MLoading a segment register while in protected mode results in special checks and actions, as descr

Pagina 611

Vol. 2A 3-603INSTRUCTION SET REFERENCE, A-MMOV—MoveProtected Mode Exceptions#GP(0) If attempt is made to load SS register with NULL segment selector.I

Pagina 612

Vol. 2A 3-19INSTRUCTION SET REFERENCE, A-MAAA—ASCII Adjust After AdditionAAA—ASCII Adjust After AdditionDescriptionAdjusts the sum of two unpacked BCD

Pagina 613

3-604 Vol. 2A MOV—MoveINSTRUCTION SET REFERENCE, A-M#SS(0) If a memory operand effective address is outside the SS segment limit.#PF(fault-code) If a

Pagina 614

Vol. 2A 3-605INSTRUCTION SET REFERENCE, A-MMOV—Move to/from Control RegistersMOV—Move to/from Control RegistersDescriptionMoves the contents of a cont

Pagina 615 - Vol. 2A 3-569

3-606 Vol. 2A MOV—Move to/from Control RegistersINSTRUCTION SET REFERENCE, A-Mand CR3 remain clear after any load of those registers; attempts to set

Pagina 616

Vol. 2A 3-607INSTRUCTION SET REFERENCE, A-MMOV—Move to/from Control RegistersIf an attempt is made to write invalid bit combinations in CR0 (such as s

Pagina 617

3-608 Vol. 2A MOV—Move to/from Debug RegistersINSTRUCTION SET REFERENCE, A-MMOV—Move to/from Debug RegistersDescriptionMoves the contents of a debug r

Pagina 618

Vol. 2A 3-609INSTRUCTION SET REFERENCE, A-MMOV—Move to/from Debug RegistersFlags AffectedThe OF, SF, ZF, AF, PF, and CF flags are undefined.Protected

Pagina 619

3-610 Vol. 2A MOVAPD—Move Aligned Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MMOVAPD—Move Aligned Packed Double-Precisi

Pagina 620 - > SRC[127:96])

Vol. 2A 3-611INSTRUCTION SET REFERENCE, A-MMOVAPD—Move Aligned Packed Double-Precision Floating-Point ValuesProtected Mode Exceptions#GP(0) For an ill

Pagina 621

3-612 Vol. 2A MOVAPD—Move Aligned Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#UD If CR0.EM[bit 2] = 1.If CR4.OSFXSR[b

Pagina 622

Vol. 2A 3-613INSTRUCTION SET REFERENCE, A-MMOVAPS—Move Aligned Packed Single-Precision Floating-Point ValuesMOVAPS—Move Aligned Packed Single-Precisio

Pagina 623 - = SNaN)

3-20 Vol. 2A AAA—ASCII Adjust After AdditionINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#UD If the LOCK prefix is used.Real-Address Mode Ex

Pagina 624

3-614 Vol. 2A MOVAPS—Move Aligned Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#GP(0) For an il

Pagina 625

Vol. 2A 3-615INSTRUCTION SET REFERENCE, A-MMOVAPS—Move Aligned Packed Single-Precision Floating-Point Values#UD If CR0.EM[bit 2] = 1.If CR4.OSFXSR[bi

Pagina 626 - = SNaN) THEN SRC[31:0]; FI;

3-616 Vol. 2A MOVD/MOVQ—Move Doubleword/Move QuadwordINSTRUCTION SET REFERENCE, A-MMOVD/MOVQ—Move Doubleword/Move QuadwordDescriptionCopies a doublewo

Pagina 627

Vol. 2A 3-617INSTRUCTION SET REFERENCE, A-MMOVD/MOVQ—Move Doubleword/Move QuadwordOperationMOVD instruction when destination operand is MMX technology

Pagina 628

3-618 Vol. 2A MOVD/MOVQ—Move Doubleword/Move QuadwordINSTRUCTION SET REFERENCE, A-M#UD If CR0.EM[bit 2] = 1.128-bit operations will generate #UD only

Pagina 629 - MFENCE—Memory Fence

Vol. 2A 3-619INSTRUCTION SET REFERENCE, A-MMOVD/MOVQ—Move Doubleword/Move Quadword#UD If CR0.EM[bit 2] = 1.(XMM register operations only) if CR4.OSFXS

Pagina 630 - < SRC[63:0])

3-620 Vol. 2A MOVDDUP—Move One Double-FP and DuplicateINSTRUCTION SET REFERENCE, A-MMOVDDUP—Move One Double-FP and DuplicateDescriptionThe linear addr

Pagina 631

Vol. 2A 3-621INSTRUCTION SET REFERENCE, A-MMOVDDUP—Move One Double-FP and Duplicatexmm1[127:64] = m64; ELSE (* Move instruction *)xmm1[63:0] = xmm2[63

Pagina 632

3-622 Vol. 2A MOVDDUP—Move One Double-FP and DuplicateINSTRUCTION SET REFERENCE, A-MVirtual 8086 Mode ExceptionsGP(0) If any part of the operand woul

Pagina 633 - < SRC[127:96])

Vol. 2A 3-623INSTRUCTION SET REFERENCE, A-MMOVDQA—Move Aligned Double QuadwordMOVDQA—Move Aligned Double QuadwordDescriptionMoves a double quadword fr

Pagina 634

Vol. 2A 3-21INSTRUCTION SET REFERENCE, A-MAAD—ASCII Adjust AX Before DivisionAAD—ASCII Adjust AX Before DivisionDescriptionAdjusts two unpacked BCD di

Pagina 635

3-624 Vol. 2A MOVDQA—Move Aligned Double QuadwordINSTRUCTION SET REFERENCE, A-M#SS(0) If a memory operand effective address is outside the SS segment

Pagina 636 - = SNaN) THEN SRC[63:0]; FI;

Vol. 2A 3-625INSTRUCTION SET REFERENCE, A-MMOVDQU—Move Unaligned Double QuadwordMOVDQU—Move Unaligned Double QuadwordDescriptionMoves a double quadwor

Pagina 637

3-626 Vol. 2A MOVDQU—Move Unaligned Double QuadwordINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#AC(0) If alignment checking is enabled and

Pagina 638

Vol. 2A 3-627INSTRUCTION SET REFERENCE, A-MMOVDQU—Move Unaligned Double Quadword#UD If CR0.EM[bit 2] = 1.If CR4.OSFXSR[bit 9] = 0.If CPUID.01H:EDX.SS

Pagina 639

3-628 Vol. 2A MOVDQ2Q—Move Quadword from XMM to MMX Technology RegisterINSTRUCTION SET REFERENCE, A-MMOVDQ2Q—Move Quadword from XMM to MMX Technology

Pagina 640

Vol. 2A 3-629INSTRUCTION SET REFERENCE, A-MMOVDQ2Q—Move Quadword from XMM to MMX Technology RegisterVirtual-8086 Mode ExceptionsSame exceptions as in

Pagina 641

3-630 Vol. 2A MOVHLPS— Move Packed Single-Precision Floating-Point Values High to LowINSTRUCTION SET REFERENCE, A-MMOVHLPS— Move Packed Single-Precisi

Pagina 642

Vol. 2A 3-631INSTRUCTION SET REFERENCE, A-MMOVHLPS— Move Packed Single-Precision Floating-Point Values High to LowVirtual 8086 Mode ExceptionsSame exc

Pagina 643 - Vol. 2A 3-597

3-632 Vol. 2A MOVHPD—Move High Packed Double-Precision Floating-Point ValueINSTRUCTION SET REFERENCE, A-MMOVHPD—Move High Packed Double-Precision Floa

Pagina 644

Vol. 2A 3-633INSTRUCTION SET REFERENCE, A-MMOVHPD—Move High Packed Double-Precision Floating-Point ValueProtected Mode Exceptions#GP(0) For an illegal

Pagina 645 - MOV—Move

3-22 Vol. 2A AAD—ASCII Adjust AX Before DivisionINSTRUCTION SET REFERENCE, A-MFlags AffectedThe SF, ZF, and PF flags are set according to the resultin

Pagina 646

3-634 Vol. 2A MOVHPD—Move High Packed Double-Precision Floating-Point ValueINSTRUCTION SET REFERENCE, A-MIf CPUID.01H:EDX.SSE2[bit 26] = 0.If the LOCK

Pagina 647

Vol. 2A 3-635INSTRUCTION SET REFERENCE, A-MMOVHPS—Move High Packed Single-Precision Floating-Point ValuesMOVHPS—Move High Packed Single-Precision Floa

Pagina 648

3-636 Vol. 2A MOVHPS—Move High Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#SS(0) For an illegal address in the SS seg

Pagina 649

Vol. 2A 3-637INSTRUCTION SET REFERENCE, A-MMOVHPS—Move High Packed Single-Precision Floating-Point Values#AC(0) If alignment checking is enabled and a

Pagina 650

3-638 Vol. 2A MOVLHPS—Move Packed Single-Precision Floating-Point Values Low to HighINSTRUCTION SET REFERENCE, A-MMOVLHPS—Move Packed Single-Precision

Pagina 651

Vol. 2A 3-639INSTRUCTION SET REFERENCE, A-MMOVLHPS—Move Packed Single-Precision Floating-Point Values Low to HighCompatibility Mode ExceptionsSame exc

Pagina 652

3-640 Vol. 2A MOVLPD—Move Low Packed Double-Precision Floating-Point ValueINSTRUCTION SET REFERENCE, A-MMOVLPD—Move Low Packed Double-Precision Floati

Pagina 653

Vol. 2A 3-641INSTRUCTION SET REFERENCE, A-MMOVLPD—Move Low Packed Double-Precision Floating-Point Value#SS(0) For an illegal address in the SS segmen

Pagina 654

3-642 Vol. 2A MOVLPS—Move Low Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MMOVLPS—Move Low Packed Single-Precision Float

Pagina 655 - Vol. 2A 3-609

Vol. 2A 3-643INSTRUCTION SET REFERENCE, A-MMOVLPS—Move Low Packed Single-Precision Floating-Point Values#SS(0) For an illegal address in the SS segme

Pagina 656

Vol. 2A 3-23INSTRUCTION SET REFERENCE, A-MAAM—ASCII Adjust AX After MultiplyAAM—ASCII Adjust AX After MultiplyDescriptionAdjusts the result of the mul

Pagina 657

3-644 Vol. 2A MOVLPS—Move Low Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#AC(0) If alignment checking is enabled and a

Pagina 658 - If CR4.OSFXSR[bit 9] = 0

Vol. 2A 3-645INSTRUCTION SET REFERENCE, A-MMOVMSKPD—Extract Packed Double-Precision Floating-Point Sign MaskMOVMSKPD—Extract Packed Double-Precision F

Pagina 659

3-646 Vol. 2A MOVMSKPD—Extract Packed Double-Precision Floating-Point Sign MaskINSTRUCTION SET REFERENCE, A-M#UD If CR0.EM[bit 2] = 1.If CR4.OSFXSR[b

Pagina 660

Vol. 2A 3-647INSTRUCTION SET REFERENCE, A-MMOVMSKPS—Extract Packed Single-Precision Floating-Point Sign MaskMOVMSKPS—Extract Packed Single-Precision F

Pagina 661

3-648 Vol. 2A MOVMSKPS—Extract Packed Single-Precision Floating-Point Sign MaskINSTRUCTION SET REFERENCE, A-M#UD If CR0.EM[bit 2] = 1.If CR4.OSFXSR[b

Pagina 662

Vol. 2A 3-649INSTRUCTION SET REFERENCE, A-MMOVNTDQ—Store Double Quadword Using Non-Temporal HintMOVNTDQ—Store Double Quadword Using Non-Temporal HintD

Pagina 663

3-650 Vol. 2A MOVNTDQ—Store Double Quadword Using Non-Temporal HintINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#GP(0) For an illegal memory

Pagina 664

Vol. 2A 3-651INSTRUCTION SET REFERENCE, A-MMOVNTDQ—Store Double Quadword Using Non-Temporal Hint#UD If CR0.EM[bit 2] = 1.If CR4.OSFXSR[bit 9] = 0.If C

Pagina 665 - Vol. 2A 3-619

3-652 Vol. 2A MOVNTI—Store Doubleword Using Non-Temporal HintINSTRUCTION SET REFERENCE, A-MMOVNTI—Store Doubleword Using Non-Temporal HintDescriptionM

Pagina 666

Vol. 2A 3-653INSTRUCTION SET REFERENCE, A-MMOVNTI—Store Doubleword Using Non-Temporal HintProtected Mode Exceptions#GP(0) For an illegal memory operan

Pagina 667

Vol. 2A viiCONTENTSPAGEFLD—Load Floating Point Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3

Pagina 668

3-24 Vol. 2A AAM—ASCII Adjust AX After MultiplyINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#DE If an immediate value of 0 is used.#UD If t

Pagina 669

3-654 Vol. 2A MOVNTPD—Store Packed Double-Precision Floating-Point Values Using Non-TemporalHintINSTRUCTION SET REFERENCE, A-MMOVNTPD—Store Packed Dou

Pagina 670

Vol. 2A 3-655INSTRUCTION SET REFERENCE, A-MMOVNTPD—Store Packed Double-Precision Floating-Point Values Using Non-Temporal HintProtected Mode Exception

Pagina 671

3-656 Vol. 2A MOVNTPD—Store Packed Double-Precision Floating-Point Values Using Non-TemporalHintINSTRUCTION SET REFERENCE, A-M#UD If CR0.EM[bit 2] = 1

Pagina 672

Vol. 2A 3-657INSTRUCTION SET REFERENCE, A-MMOVNTPS—Store Packed Single-Precision Floating-Point Values Using Non-Temporal HintMOVNTPS—Store Packed Sin

Pagina 673

3-658 Vol. 2A MOVNTPS—Store Packed Single-Precision Floating-Point Values Using Non-TemporalHintINSTRUCTION SET REFERENCE, A-MProtected Mode Exception

Pagina 674

Vol. 2A 3-659INSTRUCTION SET REFERENCE, A-MMOVNTPS—Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint#UD If CR0.EM[bit 2] = 1

Pagina 675

3-660 Vol. 2A MOVNTQ—Store of Quadword Using Non-Temporal HintINSTRUCTION SET REFERENCE, A-MMOVNTQ—Store of Quadword Using Non-Temporal HintDescriptio

Pagina 676

Vol. 2A 3-661INSTRUCTION SET REFERENCE, A-MMOVNTQ—Store of Quadword Using Non-Temporal Hint#SS(0) For an illegal address in the SS segment. #PF(fault

Pagina 677

3-662 Vol. 2A MOVNTQ—Store of Quadword Using Non-Temporal HintINSTRUCTION SET REFERENCE, A-M#UD If CR0.EM[bit 2] = 1.If CPUID.01H:EDX.SSE[bit 25] = 0.

Pagina 678

Vol. 2A 3-663INSTRUCTION SET REFERENCE, A-MMOVQ—Move QuadwordMOVQ—Move QuadwordDescriptionCopies a quadword from the source operand (second operand) t

Pagina 679

Vol. 2A 3-25INSTRUCTION SET REFERENCE, A-MAAS—ASCII Adjust AL After SubtractionAAS—ASCII Adjust AL After SubtractionDescriptionAdjusts the result of t

Pagina 680

3-664 Vol. 2A MOVQ—Move QuadwordINSTRUCTION SET REFERENCE, A-MDEST[127:64] ← 0000000000000000H;Flags AffectedNone.SIMD Floating-Point ExceptionsNone.P

Pagina 681

Vol. 2A 3-665INSTRUCTION SET REFERENCE, A-MMOVQ—Move QuadwordVirtual-8086 Mode ExceptionsSame exceptions as in real address mode.#PF(fault-code) If a

Pagina 682

3-666 Vol. 2A MOVQ2DQ—Move Quadword from MMX Technology to XMM RegisterINSTRUCTION SET REFERENCE, A-MMOVQ2DQ—Move Quadword from MMX Technology to XMM

Pagina 683 - Vol. 2A 3-637

Vol. 2A 3-667INSTRUCTION SET REFERENCE, A-MMOVQ2DQ—Move Quadword from MMX Technology to XMM RegisterVirtual-8086 Mode ExceptionsSame exceptions as in

Pagina 684

3-668 Vol. 2A MOVS/MOVSB/MOVSW/MOVSD/MOVSQ—Move Data from String to StringINSTRUCTION SET REFERENCE, A-MMOVS/MOVSB/MOVSW/MOVSD/MOVSQ—Move Data from St

Pagina 685

Vol. 2A 3-669INSTRUCTION SET REFERENCE, A-MMOVS/MOVSB/MOVSW/MOVSD/MOVSQ—Move Data from String to StringAt the assembly-code level, two forms of this i

Pagina 686

3-670 Vol. 2A MOVS/MOVSB/MOVSW/MOVSD/MOVSQ—Move Data from String to StringINSTRUCTION SET REFERENCE, A-M(E)SI ← (E)SI – 1; (E)DI ← (E)DI – 1; FI;ELSE

Pagina 687

Vol. 2A 3-671INSTRUCTION SET REFERENCE, A-MMOVS/MOVSB/MOVSW/MOVSD/MOVSQ—Move Data from String to String(R|E)SI ← (R|E)SI + 4; (R|E)DI ← (R|E)DI + 4; F

Pagina 688

3-672 Vol. 2A MOVS/MOVSB/MOVSW/MOVSD/MOVSQ—Move Data from String to StringINSTRUCTION SET REFERENCE, A-MVirtual-8086 Mode Exceptions#GP(0) If a memory

Pagina 689

Vol. 2A 3-673INSTRUCTION SET REFERENCE, A-MMOVSD—Move Scalar Double-Precision Floating-Point ValueMOVSD—Move Scalar Double-Precision Floating-Point Va

Pagina 690

3-26 Vol. 2A AAS—ASCII Adjust AL After SubtractionINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#UD If the LOCK prefix is used.Real-Address

Pagina 691

3-674 Vol. 2A MOVSD—Move Scalar Double-Precision Floating-Point ValueINSTRUCTION SET REFERENCE, A-MMOVSD void _mm_store_sd (double *p, __m128d a)MOVSD

Pagina 692

Vol. 2A 3-675INSTRUCTION SET REFERENCE, A-MMOVSD—Move Scalar Double-Precision Floating-Point Value64-Bit Mode Exceptions#SS(0) If a memory address ref

Pagina 693

3-676 Vol. 2A MOVSHDUP—Move Packed Single-FP High and DuplicateINSTRUCTION SET REFERENCE, A-MMOVSHDUP—Move Packed Single-FP High and DuplicateDescript

Pagina 694

Vol. 2A 3-677INSTRUCTION SET REFERENCE, A-MMOVSHDUP—Move Packed Single-FP High and DuplicateOperationIF (Source == m128) THEN (* Load instruction *)x

Pagina 695

3-678 Vol. 2A MOVSHDUP—Move Packed Single-FP High and DuplicateINSTRUCTION SET REFERENCE, A-MReal Address Mode ExceptionsGP(0) If any part of the ope

Pagina 696

Vol. 2A 3-679INSTRUCTION SET REFERENCE, A-MMOVSLDUP—Move Packed Single-FP Low and DuplicateMOVSLDUP—Move Packed Single-FP Low and DuplicateDescription

Pagina 697 - #UD If CR0.EM[bit 2] = 1

3-680 Vol. 2A MOVSLDUP—Move Packed Single-FP Low and DuplicateINSTRUCTION SET REFERENCE, A-MOperationIF (Source == m128) THEN (* Load instruction *)x

Pagina 698

Vol. 2A 3-681INSTRUCTION SET REFERENCE, A-MMOVSLDUP—Move Packed Single-FP Low and DuplicateReal Address Mode ExceptionsGP(0) If any part of the opera

Pagina 699

3-682 Vol. 2A MOVSS—Move Scalar Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MMOVSS—Move Scalar Single-Precision Floating-Point

Pagina 700 - Non-Temporal Hint

Vol. 2A 3-683INSTRUCTION SET REFERENCE, A-MMOVSS—Move Scalar Single-Precision Floating-Point ValuesMOVSS void _mm_store_ss(float * p, __m128 a)MOVSS _

Pagina 701

Vol. 2A 3-27INSTRUCTION SET REFERENCE, A-MADC—Add with CarryADC—Add with CarryOpcode Instruction 64-Bit ModeCompat/Leg ModeDescription14 ib ADC AL, im

Pagina 702

3-684 Vol. 2A MOVSS—Move Scalar Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M64-Bit Mode Exceptions#SS(0) If a memory address r

Pagina 703

Vol. 2A 3-685INSTRUCTION SET REFERENCE, A-MMOVSX/MOVSXD—Move with Sign-ExtensionMOVSX/MOVSXD—Move with Sign-ExtensionDescriptionCopies the contents of

Pagina 704

3-686 Vol. 2A MOVSX/MOVSXD—Move with Sign-ExtensionINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#GP(0) If a memory operand effective address

Pagina 705

Vol. 2A 3-687INSTRUCTION SET REFERENCE, A-MMOVUPD—Move Unaligned Packed Double-Precision Floating-Point ValuesMOVUPD—Move Unaligned Packed Double-Prec

Pagina 706

3-688 Vol. 2A MOVUPD—Move Unaligned Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MProtected Mode Exceptions#AC(0) If alig

Pagina 707

Vol. 2A 3-689INSTRUCTION SET REFERENCE, A-MMOVUPD—Move Unaligned Packed Double-Precision Floating-Point Values#UD If CR0.EM[bit 2] = 1.If CR4.OSFXSR[

Pagina 708

3-690 Vol. 2A MOVUPS—Move Unaligned Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MMOVUPS—Move Unaligned Packed Single-Pre

Pagina 709 - MOVQ—Move Quadword

Vol. 2A 3-691INSTRUCTION SET REFERENCE, A-MMOVUPS—Move Unaligned Packed Single-Precision Floating-Point ValuesProtected Mode Exceptions#AC(0) If align

Pagina 710

3-692 Vol. 2A MOVUPS—Move Unaligned Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#UD If CR0.EM[bit 2] = 1.If CR4.OSFXSR

Pagina 711

Vol. 2A 3-693INSTRUCTION SET REFERENCE, A-MMOVZX—Move with Zero-ExtendMOVZX—Move with Zero-ExtendDescriptionCopies the contents of the source operand

Pagina 712

3-28 Vol. 2A ADC—Add with CarryINSTRUCTION SET REFERENCE, A-MDescriptionAdds the destination operand (first operand), the source operand (second opera

Pagina 713

3-694 Vol. 2A MOVZX—Move with Zero-ExtendINSTRUCTION SET REFERENCE, A-M#SS(0) If a memory operand effective address is outside the SS segment limit.#P

Pagina 714 - String to String

Vol. 2A 3-695INSTRUCTION SET REFERENCE, A-MMUL—Unsigned MultiplyMUL—Unsigned MultiplyDescriptionPerforms an unsigned multiplication of the first opera

Pagina 715

3-696 Vol. 2A MUL—Unsigned MultiplyINSTRUCTION SET REFERENCE, A-MOperationIF (Byte operation)THEN AX ← AL ∗ SRC;ELSE (* Word or doubleword operation *

Pagina 716

Vol. 2A 3-697INSTRUCTION SET REFERENCE, A-MMUL—Unsigned Multiply#SS(0) If a memory operand effective address is outside the SS segment limit.#PF(fault

Pagina 717

3-698 Vol. 2A MULPD—Multiply Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MMULPD—Multiply Packed Double-Precision Floatin

Pagina 718

Vol. 2A 3-699INSTRUCTION SET REFERENCE, A-MMULPD—Multiply Packed Double-Precision Floating-Point Values#UD If an unmasked SIMD floating-point excepti

Pagina 719

3-700 Vol. 2A MULPD—Multiply Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#UD If an unmasked SIMD floating-point except

Pagina 720

Vol. 2A 3-701INSTRUCTION SET REFERENCE, A-MMULPS—Multiply Packed Single-Precision Floating-Point ValuesMULPS—Multiply Packed Single-Precision Floating

Pagina 721

3-702 Vol. 2A MULPS—Multiply Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#XM If an unmasked SIMD floating-point except

Pagina 722

Vol. 2A 3-703INSTRUCTION SET REFERENCE, A-MMULPS—Multiply Packed Single-Precision Floating-Point Values#XM If an unmasked SIMD floating-point excepti

Pagina 723

Vol. 2A 3-29INSTRUCTION SET REFERENCE, A-MADC—Add with CarryIf the DS, ES, FS, or GS register is used to access memory and it contains a NULL segment

Pagina 724

3-704 Vol. 2A MULSD—Multiply Scalar Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MMULSD—Multiply Scalar Double-Precision Floatin

Pagina 725

Vol. 2A 3-705INSTRUCTION SET REFERENCE, A-MMULSD—Multiply Scalar Double-Precision Floating-Point Values#UD If an unmasked SIMD floating-point excepti

Pagina 726

3-706 Vol. 2A MULSD—Multiply Scalar Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#UD If an unmasked SIMD floating-point except

Pagina 727

Vol. 2A 3-707INSTRUCTION SET REFERENCE, A-MMULSS—Multiply Scalar Single-Precision Floating-Point ValuesMULSS—Multiply Scalar Single-Precision Floating

Pagina 728

3-708 Vol. 2A MULSS—Multiply Scalar Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#UD If an unmasked SIMD floating-point except

Pagina 729

Vol. 2A 3-709INSTRUCTION SET REFERENCE, A-MMULSS—Multiply Scalar Single-Precision Floating-Point Values#UD If an unmasked SIMD floating-point excepti

Pagina 730

3-710 Vol. 2A MWAIT—Monitor WaitINSTRUCTION SET REFERENCE, A-MMWAIT—Monitor WaitDescriptionMWAIT instruction provides hints to allow the processor to

Pagina 731

Vol. 2A 3-711INSTRUCTION SET REFERENCE, A-MMWAIT—Monitor Waitprocessor will exit the state and handle the interrupt. If an SMI caused the processor to

Pagina 732

3-712 Vol. 2A MWAIT—Monitor WaitINSTRUCTION SET REFERENCE, A-MNote that if MWAIT is used to enter any of the C-states that are numerically higher than

Pagina 733

Vol. 2A 3-713INSTRUCTION SET REFERENCE, A-MMWAIT—Monitor WaitEDX = 0 (* Hints *)IF ( !trigger_store_happened) {MONITOR EAX, ECX, EDXIF ( !trigger_stor

Pagina 734

3-30 Vol. 2A ADD—AddINSTRUCTION SET REFERENCE, A-MADD—AddOpcode Instruction 64-Bit Mode Compat/Leg ModeDescription04 ib ADD AL, imm8 Valid Valid Add i

Pagina 735

3-714 Vol. 2A MWAIT—Monitor WaitINSTRUCTION SET REFERENCE, A-MCompatibility Mode ExceptionsSame exceptions as in protected mode.64-Bit Mode Exceptions

Pagina 736

Vol. 2A 3-31INSTRUCTION SET REFERENCE, A-MADD—AddDescriptionAdds the destination operand (first operand) and the source operand (second operand) and t

Pagina 737

3-32 Vol. 2A ADD—AddINSTRUCTION SET REFERENCE, A-M#SS If a memory operand effective address is outside the SS segment limit.#UD If the LOCK prefix is

Pagina 738

Vol. 2A 3-33INSTRUCTION SET REFERENCE, A-MADDPD—Add Packed Double-Precision Floating-Point ValuesADDPD—Add Packed Double-Precision Floating-Point Valu

Pagina 739 - MOVZX—Move with Zero-Extend

CONTENTSviiiVol. 2APAGEJMP—Jump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Pagina 740

3-34 Vol. 2A ADDPD—Add Packed Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#UD If an unmasked SIMD floating-point exception an

Pagina 741 - MUL—Unsigned Multiply

Vol. 2A 3-35INSTRUCTION SET REFERENCE, A-MADDPD—Add Packed Double-Precision Floating-Point Values#UD If an unmasked SIMD floating-point exception and

Pagina 742

3-36 Vol. 2A ADDPS—Add Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MADDPS—Add Packed Single-Precision Floating-Point Val

Pagina 743

Vol. 2A 3-37INSTRUCTION SET REFERENCE, A-MADDPS—Add Packed Single-Precision Floating-Point Values#XM If an unmasked SIMD floating-point exception and

Pagina 744

3-38 Vol. 2A ADDPS—Add Packed Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#XM If an unmasked SIMD floating-point exception an

Pagina 745

Vol. 2A 3-39INSTRUCTION SET REFERENCE, A-MADDSD—Add Scalar Double-Precision Floating-Point ValuesADDSD—Add Scalar Double-Precision Floating-Point Valu

Pagina 746

3-40 Vol. 2A ADDSD—Add Scalar Double-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#UD If an unmasked SIMD floating-point exception an

Pagina 747 - Vol. 2A 3-701

Vol. 2A 3-41INSTRUCTION SET REFERENCE, A-MADDSD—Add Scalar Double-Precision Floating-Point Values#UD If an unmasked SIMD floating-point exception and

Pagina 748

3-42 Vol. 2A ADDSS—Add Scalar Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-MADDSS—Add Scalar Single-Precision Floating-Point Val

Pagina 749 - Vol. 2A 3-703

Vol. 2A 3-43INSTRUCTION SET REFERENCE, A-MADDSS—Add Scalar Single-Precision Floating-Point Values#UD If an unmasked SIMD floating-point exception and

Pagina 750

Vol. 2A ixCONTENTSPAGEMOVNTDQ—Store Double Quadword Using Non-Temporal Hint . . . . . . . . . . . . . . . . . 3-649MOVNTI—Store Doubleword Using Non-

Pagina 751

3-44 Vol. 2A ADDSS—Add Scalar Single-Precision Floating-Point ValuesINSTRUCTION SET REFERENCE, A-M#UD If an unmasked SIMD floating-point exception an

Pagina 752

Vol. 2A 3-45INSTRUCTION SET REFERENCE, A-MADDSUBPD—Packed Double-FP Add/SubtractADDSUBPD—Packed Double-FP Add/SubtractDescriptionAdds the double-preci

Pagina 753 - Vol. 2A 3-707

3-46 Vol. 2A ADDSUBPD—Packed Double-FP Add/SubtractINSTRUCTION SET REFERENCE, A-MOperationxmm1[63:0] = xmm1[63:0] − xmm2/m128[63:0];xmm1[127:64] = xmm

Pagina 754

Vol. 2A 3-47INSTRUCTION SET REFERENCE, A-MADDSUBPD—Packed Double-FP Add/Subtract#UD If CR0.EM[bit 2] = 1.For an unmasked Streaming SIMD Extensions num

Pagina 755 - Vol. 2A 3-709

3-48 Vol. 2A ADDSUBPD—Packed Double-FP Add/SubtractINSTRUCTION SET REFERENCE, A-M#UD If an unmasked SIMD floating-point exception and CR4.OSXM-MEXCPT

Pagina 756 - MWAIT—Monitor Wait

Vol. 2A 3-49INSTRUCTION SET REFERENCE, A-MADDSUBPS—Packed Single-FP Add/SubtractADDSUBPS—Packed Single-FP Add/SubtractDescriptionAdds odd-numbered sin

Pagina 757 - MWAIT for Power Management

3-50 Vol. 2A ADDSUBPS—Packed Single-FP Add/SubtractINSTRUCTION SET REFERENCE, A-MOperationxmm1[31:0] = xmm1[31:0] − xmm2/m128[31:0];xmm1[63:32] = xmm1

Pagina 758

Vol. 2A 3-51INSTRUCTION SET REFERENCE, A-MADDSUBPS—Packed Single-FP Add/Subtract#XM For an unmasked Streaming SIMD Extensions numeric excep-tion, CR4

Pagina 759

3-52 Vol. 2A ADDSUBPS—Packed Single-FP Add/SubtractINSTRUCTION SET REFERENCE, A-M#UD If an unmasked SIMD floating-point exception and CR4.OSXM-MEXCPT

Pagina 760

Vol. 2A 3-53INSTRUCTION SET REFERENCE, A-MAND—Logical ANDAND—Logical ANDOpcode Instruction 64-Bit ModeComp/Leg ModeDescription24 ib AND AL, imm8 Valid

Commenti su questo manuale

Nessun commento