CIS-261 Home
http://www.c-jump.com/bcc/
Intel Volume 2: Instruction Set Reference
- TABLE OF CONTENTS
- TABLE OF FIGURES
- TABLE OF TABLES
- CHAPTER 1. ABOUT THIS MANUAL
- 1.4.2.Reserved Bits and Software Compatibility
- 1.4.3.Instruction Operands
- 1.4.4.Hexadecimal and Binary Numbers
- 1.4.5.Segmented Addressing
- 1.5.RELATED LITERATURE
- CHAPTER 2. INSTRUCTION FORMAT
- INSTRUCTION PREFIX F0H-LOCK prefix
- INSTRUCTION PREFIX F2H-REPNE/REPNZ prefix (used only with string instructions)
- INSTRUCTION PREFIX F3H-REP prefix (used only with string instructions)
- INSTRUCTION PREFIX F3H-REPE/REPZ prefix (used only with string instructions)
- INSTRUCTION PREFIX F3H-Streaming SIMD Extensions prefix
- 2.5. DISPLACEMENT AND IMMEDIATE BYTES
- 2.6. ADDRESSING-MODE ENCODING OF MODR/M AND SIB BYTES
- 16-Bit Addressing Forms with the ModR/M Byte
- Effective Address
- Mod R/M
- Value of ModR/M Byte (in Hexadecimal)
- 32-Bit Addressing Forms with the ModR/M Byte
- 32-Bit Addressing Forms with the SIB Byte
- Instruction Set Reference
- CHAPTER 3. INSTRUCTION SET REFERENCE
- INTERPRETING THE INSTRUCTION REFERENCE PAGES
- Instruction Format
- Example: CMC - Complement Carry Flag
- 3.1.1.1.OPCODE COLUMN
- 3.1.1.2.INSTRUCTION COLUMN
- 3.1.1.3.DESCRIPTION COLUMN
- 3.1.2.Operation
- 3.1.3.Intel C/C++ Compiler Intrinsics Equivalent
- 3.1.3.2.MMX TECHNOLOGY INTRINSICS
- 3.1.3.3.SIMD FLOATING-POINT INTRINSICS
- 3.1.4.Flags Affected
- 3.1.5.FPU Flags Affected
- 3.1.6.Protected Mode Exceptions
- 3.1.7.Real-Address Mode Exceptions
- Exception Mnemonics, Names, and Vector Numbers
- 3.1.8.Virtual-8086 Mode Exceptions
- 3.1.9.Floating-Point Exceptions
- 3.1.10.SIMD Floating-Point Exceptions - Streaming SIMD
- SIMD Floating - Point Exception Mnemonics and Names
- 3.2.INSTRUCTION REFERENCE
- AAA-ASCII Adjust After Addition
- AAD-ASCII Adjust AX Before Division
- AAM-ASCII Adjust AX After Multiply
- AAS-ASCII Adjust AL After Subtraction
- ADC-Add with Carry
- ADD-Add
- ADDPS-Packed Single-FP Add
- ADDSS-Scalar Single-FP Add
- AND-Logical AND
- ANDNPS-Bit-wise Logical And Not For Single-FP
- ANDPS-Bit-wise Logical And For Single FP
- ARPL-Adjust RPL Field of Segment Selector
- BOUND-Check Array Index Against Bounds
- BSF-Bit Scan Forward
- BSR-Bit Scan Reverse
- BSWAP-Byte Swap
- BT-Bit Test
- BTC-Bit Test and Complement
- BTR-Bit Test and Reset
- BTS-Bit Test and Set
- CALL-Call Procedure
- CBW/CWDE-Convert Byte to Word/Convert Word to Doubleword
- CDQ-Convert Double to Quad
- CLC-Clear Carry Flag
- CLD-Clear Direction Flag
- CLI-Clear Interrupt Flag
- CLTS-Clear Task-Switched Flag in CR0
- CMC-Complement Carry Flag
- CMOVcc-Conditional Move
- CMP-Compare Two Operands
- CMPPS-Packed Single-FP Compare
- CMPS/CMPSB/CMPSW/CMPSD-Compare String Operands
- CMPSS-Scalar Single-FP Compare
- CMPXCHG-Compare and Exchange
- CMPXCHG8B-Compare and Exchange 8 Bytes
- COMISS-Scalar Ordered Single-FP Compare and Set EFLAGS
- CPUID-CPU Identification
- CVTPI2PS-Packed Signed INT32 to Packed Single-FP Conversion
- CVTPI2PS-Packed Signed INT32 to Packed Single-FP Conversion
- CVTPI2PS-Packed Signed INT32 to Packed Single-FP Conversion
- CVTPS2PI-Packed Single-FP to Packed INT32 Conversion
- CVTPS2PI-Packed Single-FP to Packed INT32 Conversion
- CVTSI2SS-Scalar Signed INT32 to Single-FP Conversion
- CVTSS2SI-Scalar Single-FP to Signed INT32 Conversion
- CVTTPS2PI-Packed Single-FP to Packed INT32 Conversion (Truncate)
- CWD/CDQ-Convert Word to Doubleword/Convert Doubleword to Quadword
- CWDE-Convert Word to Doubleword
- DAA-Decimal Adjust AL after Addition
- DAS-Decimal Adjust AL after Subtraction
- DEC-Decrement by 1
- DIV-Unsigned Divide
- DIVPS-Packed Single-FP Divide
- DIVSS-Scalar Single-FP Divide
- EMMS-Empty MMX State
- ENTER-Make Stack Frame for Procedure Parameters
- F2XM1-Compute 2-1
- FABS-Absolute Value
- FADD/FADDP/FIADD-Add
- FBLD-Load Binary Coded Decimal
- FBSTP-Store BCD Integer and Pop
- FCHS-Change Sign
- FCLEX/FNCLEX-Clear Exceptions
- FCMOVcc-Floating-Point Conditional Move
- FCOM/FCOMP/FCOMPP-Compare Real
- FCOMI/FCOMIP/
- FUCOMI/FUCOMIP-Compare Real and Set
- EFLAGS
- FCOMI/FCOMIP/
- FUCOMI/FUCOMIP-Compare Real and Set EFLAGS
- FCOMI/FCOMIP/
- FUCOMI/FUCOMIP-Compare Real and Set EFLAGS
- FCOS-Cosine
- FDECSTP-Decrement Stack-Top Pointer
- FDIV/FDIVP/FIDIV-Divide
- FDIVR/FDIVRP/FIDIVR-Reverse Divide
- FFREE-Free Floating-Point Register
- FICOM/FICOMP-Compare Integer
- FILD-Load Integer
- FINCSTP-Increment Stack-Top Pointer
- FINIT/FNINIT-Initialize Floating-Point Unit
- FIST/FISTP-Store Integer
- FLD-Load Real
- FLD1/FLDL2T/FLDL2E/FLDPI/FLDLG2/FLDLN2/FLDZ-Load Constant
- FLDCW-Load Control Word
- FLDENV-Load FPU Environment
- FMUL/FMULP/FIMUL-Multiply
- FNOP-No Operation
- FPATAN-Partial Arctangent
- FPREM-Partial Remainder
- FPREM1-Partial Remainder
- FPTAN-Partial Tangent
- FRNDINT-Round to Integer
- FRSTOR-Restore FPU State
- FSAVE/FNSAVE-Store FPU State
- FSCALE-Scale
- FSIN-Sine
- FSINCOS-Sine and Cosine
- FSQRT-Square Root
- FST/FSTP-Store Real
- FSTCW/FNSTCW-Store Control Word
- FSTENV/FNSTENV-Store FPU Environment
- FSTSW/FNSTSW-Store Status Word
- FSUB/FSUBP/FISUB-Subtract
- FSUBR/FSUBRP/FISUBR-Reverse Subtract
- FTST-TEST
- FUCOM/FUCOMP/FUCOMPP-Unordered Compare Real
- FWAIT-Wait
- FXAM-Examine
- FXCH-Exchange Register Contents
- FXRSTOR-Restore FP and MMX
- State and
- Streaming SIMD Extension State
- FXRSTOR-Restore FP And MMX State
- FXRSTOR-Restore FP And MMX State And Streaming SIMD
- FXRSTOR-Restore FP And MMX State And Streaming SIMD Extension State
- FXSAVE-Store FP and MMX State and Streaming SIMD Extension State
- FXTRACT-Extract Exponent and Significand
- FYL2X-Compute y log x
- FYL2XP1-Compute y log(x+1)
- HLT-Halt
- IDIV-Signed Divide
- IMUL-Signed Multiply
- IN-Input from Port
- INC-Increment by 1
- INS/INSB/INSW/INSD-Input from Port to String
- INT n/INTO/INT 3-Call to Interrupt Procedure
- INVD-Invalidate Internal Caches
- INVLPG-Invalidate TLB Entry
- IRET/IRETD-Interrupt Return
- Jcc-Jump if Condition Is Met
- JMP-Jump
- LAHF-Load Status Flags into AH Register
- LAR-Load Access Rights Byte
- LDMXCSR-Load Streaming SIMD Extension Control/Status
- LDS/LES/LFS/LGS/LSS-Load Far Pointer
- LEA-Load Effective Address
- LEAVE-High Level Procedure Exit
- LES-Load Full Pointer
- LFS-Load Full Pointer
- LGDT/LIDT-Load Global/Interrupt Descriptor Table Register
- LGS-Load Full Pointer
- LLDT-Load Local Descriptor Table Register
- LIDT-Load Interrupt Descriptor Table Register
- LMSW-Load Machine Status Word
- LOCK-Assert LOCK# Signal Prefix
- LODS/LODSB/LODSW/LODSD-Load String
- LOOP/LOOPcc-Loop According to ECX Counter
- LSL-Load Segment Limit
- LSS-Load Full Pointer
- LTR-Load Task Register
- MASKMOVQ-Byte Mask Write
- MAXPS-Packed Single-FP Maximum
- MAXSS-Scalar Single-FP Maximum
- MINPS-Packed Single-FP Minimum
- MINSS-Scalar Single-FP Minimum
- MOV-Move
- MOV-Move to/from Control Registers
- MOV-Move to/from Debug Registers
- MOVAPS-Move Aligned Four Packed Single-FP
- MOVD-Move 32 Bits
- MOVHLPS- High to Low Packed Single-FP
- MOVHPS-Move High Packed Single-FP
- MOVLHPS-Move Low to High Packed Single-FP
- MOVLPS-Move Low Packed Single-FP
- MOVMSKPS-Move Mask To Integer
- MOVNTPS-Move Aligned Four Packed Single-FP Non Temporal
- MOVNTQ-Move 64 Bits Non Temporal
- MOVQ-Move 64 Bits
- MOVS/MOVSB/MOVSW/MOVSD-Move Data from StringtoString
- MOVSS-Move Scalar Single-FP
- MOVSX-Move with Sign-Extension
- MOVUPS-Move Unaligned Four Packed Single-FP
- MOVZX-Move with Zero-Extend
- MUL-Unsigned Multiply
- MULPS-Packed Single-FP Multiply
- MULSS-Scalar Single-FP Multiply
- NEG-Two's Complement Negation
- NOP-No Operation
- NOT-One's Complement Negation
- OR-Logical Inclusive OR
- ORPS-Bit-wise Logical OR for Single-FP Data
- OUT-Output to Port
- OUTS/OUTSB/OUTSW/OUTSD-Output String to Port
- PACKSSWB/PACKSSDW-Pack with Signed Saturation
- PACKUSWB-Pack with Unsigned Saturation
- PADDB/PADDW/PADDD-Packed Add
- PADDSB/PADDSW-Packed Add with Saturation
- PADDUSB/PADDUSW-Packed Add Unsigned with Saturation
- PAND-Logical AND
- PANDN-Logical AND NOT
- PAVGB/PAVGW-Packed Average
- PCMPEQB/PCMPEQW/PCMPEQD-Packed Compare for Equal
- PCMPGTB/PCMPGTW/PCMPGTD-Packed Compare for Greater Than
- PEXTRW-Extract Word
- PINSRW-Insert Word
- PMADDWD-Packed Multiply and Add
- PMAXSW-Packed Signed Integer Word Maximum
- PMAXUB-Packed Unsigned Integer Byte Maximum
- PMINSW-Packed Signed Integer Word Minimum
- PMINUB-Packed Unsigned Integer Byte Minimum
- PMOVMSKB-Move Byte Mask To Integer
- PMULHUW-Packed Multiply High Unsigned
- PMULHW-Packed Multiply High
- PMULLW-Packed Multiply Low
- POP-Pop a Value from the Stack
- POPA/POPAD-Pop All General-Purpose Registers
- POPF/POPFD-Pop Stack into EFLAGS Register
- POR-Bitwise Logical OR
- PREFETCH-Prefetch
- PSADBW-Packed Sum of Absolute Differences
- PSHUFW-Packed Shuffle Word
- PSLLW/PSLLD/PSLLQ-Packed Shift Left Logical
- PSRAW/PSRAD-Packed Shift Right Arithmetic
- PSRLW/PSRLD/PSRLQ-Packed Shift Right Logical
- PSUBB/PSUBW/PSUBD-Packed Subtract
- PSUBSB/PSUBSW-Packed Subtract with Saturation
- PSUBUSB/PSUBUSW-Packed Subtract Unsigned with Saturation
- PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ-Unpack High Packed Data
- PUSH-Push Word or Doubleword Onto the Stack
- PUSHA/PUSHAD-Push All General-Purpose Registers
- PUSHF/PUSHFD-Push EFLAGS Register onto the Stack
- PXOR-Logical Exclusive OR
- RCL/RCR/ROL/ROR--Rotate
- RCPPS-Packed Single-FP Reciprocal
- RCPSS-Scalar Single-FP Reciprocal
- RDMSR-Read from Model Specific Register
- RDPMC-Read Performance-Monitoring Counters
- RDTSC-Read Time-Stamp Counter
- REP/REPE/REPZ/REPNE/REPNZ-Repeat String Operation Prefix
- RET-Return from Procedure
- ROL/ROR-Rotate
- RSM-Resume from System Management Mode
- RSQRTPS-Packed Single-FP Square Root Reciprocal
- RSQRTSS-Scalar Single-FP Square Root Reciprocal
- SAHF-Store AH into Flags
- SAL/SAR/SHL/SHR-Shift
- SBB-Integer Subtraction with Borrow
- SCAS/SCASB/SCASW/SCASD-Scan String
- SETcc-Set Byte on Condition
- SFENCE-Store Fence
- SGDT/SIDT-Store Global/Interrupt Descriptor Table Register
- SHL/SHR-Shift Instructions
- SHLD-Double Precision Shift Left
- SHRD-Double Precision Shift Right
- SHUFPS-Shuffle Single-FP
- SIDT-Store Interrupt Descriptor Table Register
- SLDT-Store Local Descriptor Table Register
- SMSW-Store Machine Status Word
- SQRTPS-Packed Single-FP Square Root
- SQRTSS-Scalar Single-FP Square Root
- STC-Set Carry Flag
- STD-Set Direction Flag
- STI-Set Interrupt Flag
- STMXCSR-Store Streaming SIMD Extension Control/Status
- STOS/STOSB/STOSW/STOSD-Store String
- STR-Store Task Register
- SUB-Subtract
- SUBPS-Packed Single-FP Subtract
- SUBSS-Scalar Single-FP Subtract
- SYSENTER-Fast Transition to System Call Entry Point
- SYSEXIT-Fast Transition from System Call Entry Point
- TEST-Logical Compare
- UCOMISS-Unordered Scalar Single-FP compare and set EFLAGS
- UD2-Undefined Instruction
- UNPCKHPS-Unpack High Packed Single-FP Data
- UNPCKLPS-Unpack Low Packed Single-FP Data
- VERR/VERW-Verify a Segment for Reading or Writing
- WAIT/FWAIT-Wait
- WBINVD-Write Back and Invalidate Cache
- WRMSR-Write to Model Specific Register
- XADD-Exchange and Add
- XCHG-Exchange Register/Memory with Register
- XLAT/XLATB-Table Look-up Translation
- XOR-Logical Exclusive OR
- XORPS-Bit-wise Logical Xor for Single-FP Data
- APPENDIX A. OPCODE MAP
- Instruction Formats and Encodings
- APPENDIX B. INSTRUCTION FORMATS AND ENCODINGS
- B.1.MACHINE INSTRUCTION FORMAT
- B.1.1.Reg Field (reg)
- B.1.2.Encoding of Operand Size Bit (w)
- B.1.3.Sign Extend (s) Bit
- B.1.4.Segment Register Field (sreg)
- B.1.5.Special-Purpose Register (eee) Field
- B.1.6.Condition Test Field (tttn)
- B.1.7.Direction (d) Bit
- B.2.INTEGER INSTRUCTION FORMATS AND ENCODINGS
- AND - Logical AND
- ARPL - Adjust RPL Field of Selector
- BOUND - Check Array Against Bounds
- BSF - Bit Scan Forward
- BSR - Bit Scan Reverse
- BSWAP - Byte Swap
- BT - Bit Test
- BTC - Bit Test and Complement
- BTR - Bit Test and Reset
- Instruction and Format Encoding
- BTS - Bit Test and Set
- CALL - Call Procedure (in same segment)
- CALL - Call Procedure (in other segment)
- CBW - Convert Byte to Word
- CDQ - Convert Doubleword to Qword
- CLC - Clear Carry Flag
- CLD - Clear Direction Flag
- CLI - Clear Interrupt Flag
- CLTS - Clear Task-Switched Flag in CR0
- CMC - Complement Carry Flag
- CMOVcc - Conditional Move
- CMP - Compare Two Operands
- CMPS/CMPSB/CMPSW/CMPSD - Compare String Operands
- CMPXCHG - Compare and Exchange Instruction and FormatEncoding
- CMPXCHG8B - Compare and Exchange 8 Bytes
- CPUID - CPU Identification
- CWD - Convert Word to Doubleword
- CWDE - Convert Word to Doubleword
- DAA - Decimal Adjust AL after Addition
- DAS - Decimal Adjust AL after Subtraction0010 1111
- DEC - Decrement by 1
- DIV - Unsigned Divide
- ENTER - Make Stack Frame for High Level Procedure
- HLT - Halt
- IDIV - Signed Divide
- IMUL - Signed Multiply
- IN - Input From Port
- INC - Increment by 1
- INS - Input from DX Port Instruction and Format Encoding
- INT n - Interrupt Type n
- INT - Single-Step Interrupt 3
- INTO - Interrupt 4 on Overflow
- INVD - Invalidate Cache
- INVLPG - Invalidate TLB Entry
- IRET/IRETD - Interrupt Return
- Jcc - Jump if Condition is Met
- JCXZ/JECXZ - Jump on CX/ECX Zero
- JMP - Unconditional Jump (to same segment)
- JMP - Unconditional Jump (to other segment)
- LAHF - Load Flags into AHRegister
- LAR - Load Access Rights Byte
- LDS - Load Pointer to DS
- LEA - Load Effective Address
- LEAVE - High Level Procedure Exit
- LES - Load Pointer to ES
- LFS - Load Pointer to FS
- LGDT - Load Global Descriptor Table Register0000 1111 : 0000 0001 : mod 010 r/m
- LGS - Load Pointer to GS
- LIDT - Load Interrupt Descriptor Table Register
- LLDT - Load Local Descriptor Table Register Instruction and Format Encoding
- LMSW - Load Machine Status Word
- LOCK - Assert LOCK# Signal Prefix
- LODS/LODSB/LODSW/LODSD - Load String Operand
- LOOP - Loop Count
- LOOPZ/LOOPE - Loop Count while Zero/Equal1110 0001 : 8-bit displacement
- LOOPNZ/LOOPNE - Loop Count while not Zero/Equal
- LSL - Load Segment Limit
- LSS - Load Pointer to SS
- LTR - Load Task Register
- MOV - Move Data
- MOV - Move to/from Control Registers Instruction and Format Encoding
- MOV - Move to/from Debug Registers
- MOV - Move to/from Segment Registers
- MOVS/MOVSB/MOVSW/MOVSD - Move Data from String to String
- MOVSX - Move with Sign-Extend
- MOVZX - Move with Zero-Extend
- MUL - Unsigned Multiply
- NEG - Two's Complement Negation
- NOP - No Operation
- NOT - One's Complement Negation Instruction and Format Encoding
- OR - Logical Inclusive OR
- OUT - Output to Port
- OUTS - Output to DX Port
- POP - Pop a Word from the Stack
- POP - Pop a Segment Register from the Stack
- POPA/POPAD - Pop All General Registers
- POPF/POPFD - Pop Stack into FLAGS or EFLAGS Register
- PUSH - Push Operand onto the Stack
- PUSH - Push Segment Register onto the Stack
- PUSHA/PUSHAD - Push All General Registers0110 0000
- PUSHF/PUSHFD - Push Flags Register onto the Stack Instruction and Format Encoding
- RCL - Rotate thru Carry Left
- RCR - Rotate thru Carry Right
- RDMSR - Read from Model-Specific Register
- RDPMC - Read Performance Monitoring Counters
- RDTSC - Read Time-Stamp Counter
- REP INS - Input String
- REP LODS - Load String
- REP MOVS - Move String
- REP OUTS - Output String
- REP STOS - Store String
- REPE CMPS - Compare String
- REPE SCAS - Scan String
- REPNE CMPS - Compare String
- REPNE SCAS - Scan String
- RET - Return from Procedure (to same segment)
- RET - Return from Procedure (to other segment) Instruction and Format Encoding
- ROL - Rotate Left
- ROR - Rotate Right
- RSM - Resume from System Management Mode
- SAHF - Store AH into Flags
- SAL - Shift Arithmetic Left
- SAR - Shift Arithmetic Right
- SBB - Integer Subtraction with Borrow
- SCAS/SCASB/SCASW/SCASD - Scan String1101 111w Instruction and Format Encoding
- SETcc - Byte Set on Condition
- SGDT - Store Global Descriptor Table Register
- SHL - Shift Left
- SHLD - Double Precision Shift Left
- SHR - Shift Right
- SHRD - Double Precision Shift Right
- SIDT - Store Interrupt Descriptor Table Register
- SLDT - Store Local Descriptor Table Register Instruction and Format Encoding
- SMSW - Store Machine Status Word
- STC - Set Carry Flag
- STD - Set Direction Flag
- STI - Set Interrupt Flag
- STOS/STOSB/STOSW/STOSD - Store String Data
- STR - Store Task Register
- SUB - Integer Subtraction
- TEST - Logical Compare
- UD2 - Undefined instruction
- VERR - Verify a Segment for Reading
- VERW - Verify a Segment for Writing
- WAIT - Wait
- WBINVD - Writeback and Invalidate Data Cache
- WRMSR - Write to Model-Specific Register
- XADD - Exchange and Add
- XCHG - Exchange Register/Memory with Register
- XLAT/XLATB - Table Look-up Translation
- XOR - Logical Exclusive OR
- Prefix Bytes
- B.3.MMX INSTRUCTION FORMATS AND ENCODINGS
- B.3.1.Granularity Field (gg)
- B.3.2.MMX and General-Purpose Register Fields (mmxreg and reg)
- PADDUS - Add unsigned with saturation
- PAND - Bitwise And
- PANDN - Bitwise AndNot
- PCMPEQ - Packed compare for equality
- PCMPGT - Packed compare greater (signed)
- PMADD - Packed multiply add
- PMULH - Packed multiplication
- PMULL - Packed multiplication
- POR - Bitwise Or
- BWDQ
- PSLL - Packed shift left logical
- PSRA - Packed shift right arithmetic
- PSRL - Packed shift right logical
- PSUB - Subtract with wrap-around
- PSUBS - Subtract signed with saturation
- PSUBUS - Subtract unsigned with saturation
- PUNPCKH - Unpack high data to next larger type
- BWDQ
- PUNPCKL - Unpack low data to next larger type
- PXOR - Bitwise Xor
- BWDQ
- Prefix Type Effect on Streaming SIMD Extensions
- B.4.2.Notations
- B.4.3.Formats and Encodings
- CMPSS - Scalar Single-FP Compare
- COMISS - Scalar Ordered Single-FP compare and set EFLAGS
- CVTPI2PS - Packed signed INT32 to Packed Single-FP conversion
- CVTPS2PI - Packed Single-FP to Packed INT32 conversion
- CVTSI2SS - Scalar signed INT32 to Single-FP conversion
- CVTSS2SI - Scalar Single-FP to signed INT32 conversion
- CVTTPS2PI - Packed Single-FP to Packed INT32 Conversion
- BWDQDQ
- CVTTSS2SI - Scalar Single-FP to signed INT32 conversion
- DIVPS - Packed Single-FP Divide
- DIVSS - Scalar Single-FP Divide
- FXRSTOR - Restore FP/MMX and Streaming SIMD Extensions state
- FXSAVE - Store FP/MMX and Streaming SIMD Extensions state
- LDMXCSR - Load Streaming SIMD Extensions Technology
- Control/Status Register
- MAXPS - Packed Single-FP Maximum
- MAXSS - Scalar Single-FP Maximum
- MINPS - Packed Single-FP Minimum Instruction and Format Encoding
- BWDQDQ
- MINSS - Scalar Single-FP Minimum
- MOVAPS - Move Aligned Four Packed Single-FP
- MOVHLPS - Move High to Low Packed Single-FP
- MOVHPS - Move High Packed Single-FP
- MOVLHPS - Move Low to High Packed Single-FP
- MOVLPS - Move Low Packed Single-FP
- MOVMSKPS - Move Mask To Integer
- MOVSS - Move Scalar Single-FP Instruction and Format
- MOVUPS - Move Unaligned Four Packed Single-FP
- MULPS - Packed Single-FP Multiply
- MULSS - Scalar Single-FP Multiply
- ORPS: Bit-wise Logical OR for Single-FP Data
- RCPPS - Packed Single-FP Reciprocal
- RCPSS - Scalar Single-FP Reciprocal
- RSQRTPS - Packed Single-FP Square Root Reciprocal
- RSQRTSS - Scalar Single-FP Square Root Reciprocal
- SHUFPS - Shuffle Single-FP
- SQRTPS - Packed Single-FP Square Root
- SQRTSS - Scalar Single-FP Square Root
- STMXCSR - Store Streaming SIMD Extensions Technology Control/Status Register
- SUBPS: Packed Single-FP Subtract
- SUBSS: Scalar Single-FP Subtract
- UCOMISS: Unordered Scalar Single-FP compare and set EFLAGS
- UNPCKHPS: Unpack High Packed Single-FP Data
- UNPCKLPS: Unpack Low Packed Single-FP Data
- XORPS: Bit-wise Logical Xor for Single-FP Data
- PAVGB/PAVGW - Packed Average
- PEXTRW - Extract Word
- PINSRW - Insert Word
- PMAXSW - Packed Signed Integer Word Maximum
- PMAXUB - Packed Unsigned Integer Byte Maximum
- PMINSW - Packed Signed Integer Word Minimum
- PMINUB - Packed Unsigned Integer Byte Minimum
- PMOVMSKB - Move Byte Mask To Integer
- B.5.FLOATING-POINT INSTRUCTION FORMATS AND ENCODINGS
- F2XM1 - Compute 2 - 1
- FABS - Absolute Value
- FADD - Add
- FADDP - Add and Pop
- FBLD - Load Binary Coded Decimal
- FBSTP - Store Binary Coded Decimal and Pop
- FCHS - Change Sign
- FCLEX - Clear Exceptions
- FCMOVcc - Conditional Move on EFLAG Register Condition Codes
- FCOM - Compare Real
- FCOMP - Compare Real and Pop
- FCOMPP - Compare Real and Pop Twice
- FCOMI - Compare Real and Set EFLAGS
- FCOMIP - Compare Real, Set EFLAGS, and Pop11011 111 : 11 110 ST(i)
- FCOS - Cosine of ST(0)
- FDECSTP - Decrement Stack-Top Pointer
- FDIV - Divide
- FDIVP - Divide and Pop
- FDIVR - Reverse Divide
- FDIVRP - Reverse Divide and Pop
- FFREE - Free ST(i) Register
- FIADD - Add Integer
- FICOM - Compare Integer
- FICOMP - Compare Integer and Pop
- FIDIV
- FIDIVR
- FILD - Load Integer
- FIMUL
- FINCSTP - Increment Stack Pointer
- FINIT - Initialize Floating-Point Unit
- FIST - Store Integer
- FISTP - Store Integer and Pop
- FISUB
- FISUBR
- FLD - Load Real
- FLD1 - Load +1.0 into ST(0)
- FLDCW - Load Control Word
- FLDENV - Load FPU Environment
- FLDL2E - Load log() into ST(0)
- FLDL2T - Load log(10) into ST(0)
- FLDLG2 - Load log(2) into ST(0)
- FLDLN2 - Load log(2) into ST(0)
- FLDPI - Load into ST(0)
- FLDZ - Load +0.0 into ST(0)
- FMUL - Multiply
- FMULP - Multiply
- FNOP - No Operation
- FPATAN - Partial Arctangent
- FPREM - Partial Remainder
- FPREM1 - Partial Remainder (IEEE)
- FPTAN - Partial Tangent
- FRNDINT - Round to Integer
- FRSTOR - Restore FPU State
- FSAVE - Store FPU State
- FSCALE - Scale
- FSIN - Sine
- FSINCOS - Sine and Cosine
- FSQRT - Square Root
- FST - Store Real
- FSTCW - Store Control Word
- FSTENV - Store FPU Environment
- FSTP - Store Real and Pop
- FSTSW - Store Status Word into AX
- FSTSW - Store Status Word into Memory
- FSUB - Subtract
- FSUBP - Subtract and Pop
- FSUBR - Reverse Subtract
- FSUBRP - Reverse Subtract and Pop
- FTST - Test
- FUCOM - Unordered Compare Real
- FUCOMP - Unordered Compare Real and Pop11011 101 : 1110 1 ST(i)
- FUCOMPP - Unordered Compare Real and Pop Twice
- FUCOMI - Unordered Compare Real and Set EFLAGS
- FUCOMIP - Unordered Compare Real, Set EFLAGS, and Pop
- FXAM - Examine
- FXCH - Exchange ST(0) and ST(i)
- FXTRACT - Extract Exponent and Significand11011 001 : 1111 0100
- FYL2X - ST(1) log(ST(0))
- FYL2XP1 - ST(1) log(ST(0) + 1.0)
- FWAIT - Wait until FPU Ready
- APPENDIX C. COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTS
- INDEX A - B - C
- INDEX D - E - F
- INDEX G
- INDEX H - I - J - L - M
- INDEX N - O - P
- INDEX Q - R
- INDEX S - T
- INDEX U - V - W - X - Z