| Opcode |
Description |
| AAA |
ASCII Adjust After Addition |
| AAD |
ASCII Adjust AX Before Division |
| AAS |
ASCII Adjust AL After Subtraction |
| ADC |
Add with Carry |
| ADD |
Add |
| ADDPD |
Add Packed Double-Precision Floating-Point Values |
| ADDPS |
Add Packed Single-Precision Floating-Point Values |
| ADDSD |
Add Scalar Double-Precision Floating-Point Values |
| ADDSS |
Add Scalar Single-Precision Floating-Point Values |
| ADDSUBPD |
Packed Double-FP Add/Subtract |
| ADDSUBPS |
Packed Single-FP Add/Subtract |
| AND |
Logical AND |
| ANDPD |
Bitwise Logical AND of Packed Double-Precision Floating-Point Values |
| ANDPS |
Bitwise Logical AND of Packed Single-Precision Floating-Point Values |
| ANDNPD |
Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values |
| ANDNPS |
Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values |
| 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 |
| CLC |
Clear Carry Flag |
| CLD |
Clear Direction Flag |
| CLFLUSH |
Flush Cache Line |
| CLI |
Clear Interrupt Flag |
| CLTS |
Clear Task-Switched Flag in CR0 |
| CMC |
Complement Carry Flag |
| CMOVcc |
Conditional Move |
| CMP |
Compare Two Operands |
| CMPPD |
Compare Packed Double-Precision Floating-Point Values |
| CMPPS |
Compare Packed Single-Precision Floating-Point Values |
| CMPS/CMPSB/CMPSW/CMPSD |
Compare String Operands |
| CMPSD |
Compare Scalar Double-Precision Floating-Point Values |
| CMPSS |
Compare Scalar Single-Precision Floating-Point Values |
| CMPXCHG |
Compare and Exchange |
| CMPXCHG8B |
Compare and Exchange 8 Bytes |
| COMISD |
Compare Scalar Ordered Double-Precision Floating- Point Values and Set EFLAGS |
| COMISS |
Compare Scalar Ordered Single-Precision Floating- Point Values and Set EFLAGS |
| CPUID |
CPU Identification |
| CVTDQ2PD |
Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point Values |
| CVTDQ2PS |
Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point Values |
| CVTPD2DQ |
Convert Packed Double-Precision Floating-Point Values to Packed Doubleword Integers |
| CVTPD2PI |
Convert Packed Double-Precision Floating-Point Values to Packed Doubleword Integers |
| CVTPD2PS |
Convert Packed Double-Precision Floating-Point Values to Packed Single-Precision Floating-Point Values |
| CVTPI2PD |
Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point Values |
| CVTPI2PS |
Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point Values |
| CVTPS2DQ |
Convert Packed Single-Precision Floating-Point Values to Packed Doubleword Integers |
| CVTPS2PD |
Convert Packed Single-Precision Floating-Point Values to Packed Double-Precision Floating-Point Values |
| CVTPS2PI |
Convert Packed Single-Precision Floating-Point Values to Packed Doubleword Integers |
| CVTSD2SI |
Convert Scalar Double-Precision Floating-Point Value to Doubleword Integer |
| CVTSD2SS |
Convert Scalar Double-Precision Floating-Point Value to Scalar Single-Precision Floating-Point Value |
| CVTSI2SD |
Convert Doubleword Integer to Scalar Double- Precision Floating-Point Value |
| CVTSI2SS |
Convert Doubleword Integer to Scalar Single- Precision Floating-Point Value |
| CVTSS2SD |
Convert Scalar Single-Precision Floating-Point Value to Scalar Double-Precision Floating-Point Value |
| CVTSS2SI |
Convert Scalar Single-Precision Floating-Point Value to Doubleword Integer |
| CVTTPD2PI |
Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Integers |
| CVTTPD2DQ |
Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Integers |
| CVTTPS2DQ |
Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Doubleword Integers |
| CVTTPS2PI |
Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Doubleword Integers |
| CVTTSD2SI |
Convert with Truncation Scalar Double-Precision Floating-Point Value to Signed Doubleword Integer |
| CVTTSS2SI |
Convert with Truncation Scalar Single-Precision Floating-Point Value to Doubleword Integer |
| CWD/CDQ |
Convert Word to Doubleword/Convert Doubleword to Quadword |
| DAA |
Decimal Adjust AL after Addition |
| DAS |
Decimal Adjust AL after Subtraction |
| DEC |
Decrement by 1 |
| DIV |
Unsigned Divide |
| DIVPD |
Divide Packed Double-Precision Floating-Point Values |
| DIVPS |
Divide Packed Single-Precision Floating-Point Values |
| DIVSD |
Divide Scalar Double-Precision Floating-Point Values |
| DIVSS |
Divide Scalar Single-Precision Floating-Point Values |
| EMMS |
Empty MMX Technology State |
| ENTER |
Make Stack Frame for Procedure Parameters |
| F2XM1 |
Compute 2x-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 Floating Point Values |
| FCOMI/FCOMIP/FUCOMI/FUCOMIP |
Compare Floating Point Values 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 |
| FISTTP |
Store Integer with Truncation |
| FLD |
Load Floating Point Value |
| FLD1/FLDL2T/FLDL2E/FLDPI/FLDLG2/FLDLN2/FLDZ |
Load Constant |
| FLDCW |
Load x87 FPU Control Word |
| FLDENV |
Load x87 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 x87 FPU State |
| FSAVE/FNSAVE |
Store x87 FPU State |
| FSCALE |
Scale |
| FSIN |
Sine |
| FSINCOS |
Sine and Cosine |
| FSQRT |
Square Root |
| FST/FSTP |
Store Floating Point Value |
| FSTCW/FNSTCW |
Store x87 FPU Control Word |
| FSTENV/FNSTENV |
Store x87 FPU Environment |
| FSTSW/FNSTSW |
Store x87 FPU Status Word |
| FSUB/FSUBP/FISUB |
Subtract |
| FSUBR/FSUBRP/FISUBR |
Reverse Subtract |
| FTST |
Test Floating Point Value |
| FUCOM/FUCOMP/FUCOMPP |
Unordered Compare Floating Point Values |
| FXAM |
Examine Floating Point Value |
| FXCH |
Exchange Register Contents |
| FXRSTOR |
Restore x87 FPU, MMX Technology, SSE, and SSE2 State |
| FXSAVE |
Save x87 FPU, MMX Technology, SSE, and SSE2 State |
| FXTRACT |
Extract Exponent and Mantissa |
| FYL2X |
Compute y * log_2(x) |
| FYL2XP1 |
Compute y * log_2(x + 1) |
| HADDPD |
Packed Double-FP Horizontal Add |
| HADDPS |
Packed Single-FP Horizontal Add |
| HLT |
Halt |
| HSUBPD |
Packed Double-FP Horizontal Subtract |
| HSUBPS |
Packed Single-FP Horizontal Subtract |
| 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 |
| LDDQU |
Load Unaligned Integer 128 Bits |
| LDMXCSR |
Load MXCSR Register |
| LDS/LES/LFS/LGS/LSS |
Load Far Pointer |
| LEA |
Load Effective Address |
| LEAVE |
High Level Procedure Exit |
| LFENCE |
Load Fence |
| LGDT/LIDT |
Load Global/Interrupt Descriptor Table Register |
| LLDT |
Load Local 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 |
| LTR |
Load Task Register |
| MASKMOVDQU |
Store Selected Bytes of Double Quadword |
| MASKMOVQ |
Store Selected Bytes of Quadword |
| MAXPD |
Return Maximum Packed Double-Precision Floating- Point Values |
| MAXPS |
Return Maximum Packed Single-Precision Floating-Point Values |
| MAXSD |
Return Maximum Scalar Double-Precision Floating-Point Value |
| MAXSS |
Return Maximum Scalar Single-Precision Floating-Point Value |
| MFENCE |
Memory Fence |
| MINPD |
Return Minimum Packed Double-Precision Floating-Point Values |
| MINPS |
Return Minimum Packed Single-Precision Floating-Point Values |
| MINSD |
Return Minimum Scalar Double-Precision Floating-Point Value |
| MINSS |
Return Minimum Scalar Single-Precision Floating-Point Value |
| MONITOR |
Setup Monitor Address |
| MOV |
Move |
| MOV |
Move to/from Control Registers |
| MOV |
Move to/from Debug Registers |
| MOVAPD |
Move Aligned Packed Double-Precision Floating-Point Values |
| MOVAPS |
Move Aligned Packed Single-Precision Floating-Point Values |
| MOVD |
Move Doubleword |
| MOVDDUP |
Move One Double-FP and Duplicate |
| MOVDQA |
Move Aligned Double Quadword |
| MOVDQU |
Move Unaligned Double Quadword |
| MOVDQ2Q |
Move Quadword from XMM to MMX Technology Register |
| MOVHLPS |
Move Packed Single-Precision Floating-Point Values High to Low |
| MOVHPD |
Move High Packed Double-Precision Floating-Point Value |
| MOVHPS |
Move High Packed Single-Precision Floating-Point Values |
| MOVLHPS |
Move Packed Single-Precision Floating-Point Values Low to High |
| MOVLPD |
Move Low Packed Double-Precision Floating-Point Value |
| MOVLPS |
Move Low Packed Single-Precision Floating-Point Values |
| MOVMSKPD |
Extract Packed Double-Precision Floating-Point Sign Mask |
| MOVMSKPS |
Extract Packed Single-Precision Floating-Point Sign Mask |
| MOVNTDQ |
Store Double Quadword Using Non-Temporal Hint |
| MOVNTI |
Store Doubleword Using Non-Temporal Hint |
| MOVNTPD |
Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint |
| MOVNTPS |
Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint |
| MOVNTQ |
Store of Quadword Using Non-Temporal Hint |
| MOVSHDUP |
Move Packed Single-FP High and Duplicate |
| MOVSLDUP |
Move Packed Single-FP Low and Duplicate |
| MOVQ |
Move Quadword |
| MOVQ2DQ |
Move Quadword from MMX Technology to XMM Register |
| MOVS/MOVSB/MOVSW/MOVSD |
Move Data from String to String |
| MOVSD |
Move Scalar Double-Precision Floating-Point Value |
| MOVSS |
Move Scalar Single-Precision Floating-Point Values |
| MOVSX |
Move with Sign-Extension |
| MOVUPD |
Move Unaligned Packed Double-Precision Floating- Point Values |
| MOVUPS |
Move Unaligned Packed Single-Precision Floating- Point Values |
| MOVZX |
Move with Zero-Extend |
| MUL |
Unsigned Multiply |
| MULPD |
Multiply Packed Double-Precision Floating-Point Values |
| MULPS |
Multiply Packed Single-Precision Floating-Point Values |
| MULSD |
Multiply Scalar Double-Precision Floating-Point Values |
| MULSS |
Multiply Scalar Single-Precision Floating-Point Values |
| MWAIT |
Monitor Wait |
| NEG |
Two's Complement Negation |
| NOP |
No Operation |
| NOT |
One's Complement Negation |
| OR |
Logical Inclusive OR |
| ORPD |
Bitwise Logical OR of Double-Precision Floating-Point Values |
| ORPS |
Bitwise Logical OR of Single-Precision Floating-Point Values |
| 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 |
Add Packed Integers |
| PADDQ |
Add Packed Quadword Integers |
| PADDSB/PADDSW |
Add Packed Signed Integers with Signed Saturation |
| PADDUSB/PADDUSW |
Add Packed Unsigned Integers with Unsigned Saturation |
| PAND |
Logical AND |
| PANDN |
Logical AND NOT |
| PAUSE |
Spin Loop Hint |
| PAVGB/PAVGW |
Average Packed Integers |
| PCMPEQB/PCMPEQW/PCMPEQD |
Compare Packed Data for Equal |
| PCMPGTB/PCMPGTW/PCMPGTD |
Compare Packed Signed Integers for Greater Than |
| PEXTRW |
Extract Word |
| PINSRW |
Insert Word |
| PMADDWD |
Multiply and Add Packed Integers |
| PMAXSW |
Maximum of Packed Signed Word Integers |
| PMAXUB |
Maximum of Packed Unsigned Byte Integers |
| PMINSW |
Minimum of Packed Signed Word Integers |
| PMINUB |
Minimum of Packed Unsigned Byte Integers |
| PMOVMSKB |
Move Byte Mask |
| PMULHUW |
Multiply Packed Unsigned Integers and Store High Result |
| PMULHW |
Multiply Packed Signed Integers and Store High Result |
| PMULLW |
Multiply Packed Signed Integers and Store Low Result |
| PMULUDQ |
Multiply Packed Unsigned Doubleword Integers |
| 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 |
| PREFETCHh |
Prefetch Data Into Caches |
| PSADBW |
Compute Sum of Absolute Differences |
| PSHUFD |
Shuffle Packed Doublewords |
| PSHUFHW |
Shuffle Packed High Words |
| PSHUFLW |
Shuffle Packed Low Words |
| PSHUFW |
Shuffle Packed Words |
| PSLLDQ |
Shift Double Quadword Left Logical |
| PSLLW/PSLLD/PSLLQ |
Shift Packed Data Left Logical |
| PSRAW/PSRAD |
Shift Packed Data Right Arithmetic |
| PSRLDQ |
Shift Double Quadword Right Logical |
| PSRLW/PSRLD/PSRLQ |
Shift Packed Data Right Logical |
| PSUBB/PSUBW/PSUBD |
Subtract Packed Integers |
| PSUBQ |
Subtract Packed Quadword Integers |
| PSUBSB/PSUBSW |
Subtract Packed Signed Integers with Signed Saturation |
| PSUBUSB/PSUBUSW |
Subtract Packed Unsigned Integers with Unsigned Saturation |
| PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ/PUNPCKHQDQ |
Unpack High Data |
| PUNPCKLBW/PUNPCKLWD/PUNPCKLDQ/PUNPCKLQDQ |
Unpack Low 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 |
Compute Reciprocals of Packed Single-Precision Floating-Point Values |
| RCPSS |
Compute Reciprocal of Scalar Single-Precision Floating- Point Values |
| 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 |
| RSM |
Resume from System Management Mode |
| RSQRTPS |
Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values |
| RSQRTSS |
Compute Reciprocal of Square Root of Scalar Single- Precision Floating-Point Value |
| 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 |
Store Global Descriptor Table Register |
| SHLD |
Double Precision Shift Left |
| SHRD |
Double Precision Shift Right |
| SHUFPD |
Shuffle Packed Double-Precision Floating-Point Values |
| SHUFPS |
Shuffle Packed Single-Precision Floating-Point Values |
| SIDT |
Store Interrupt Descriptor Table Register |
| SLDT |
Store Local Descriptor Table Register |
| SMSW |
Store Machine Status Word |
| SQRTPD |
Compute Square Roots of Packed Double-Precision Floating-Point Values |
| SQRTPS |
Compute Square Roots of Packed Single-Precision Floating-Point Values |
| SQRTSD |
Compute Square Root of Scalar Double-Precision Floating-Point Value |
| SQRTSS |
Compute Square Root of Scalar Single-Precision Floating-Point Value |
| STC |
Set Carry Flag |
| STD |
Set Direction Flag |
| STI |
Set Interrupt Flag |
| STMXCSR |
Store MXCSR Register State |
| STOS/STOSB/STOSW/STOSD |
Store String |
| STR |
Store Task Register |
| SUB |
Subtract |
| SUBPD |
Subtract Packed Double-Precision Floating-Point Values |
| SUBPS |
Subtract Packed Single-Precision Floating-Point Values |
| SUBSD |
Subtract Scalar Double-Precision Floating-Point Values |
| SUBSS |
Subtract Scalar Single-Precision Floating-Point Values |
| SYSENTER |
Fast System Call |
| SYSEXIT |
Fast Return from Fast System Call |
| TEST |
Logical Compare |
| UCOMISD |
Unordered Compare Scalar Double-Precision Floating- Point Values and Set EFLAGS |
| UCOMISS |
Unordered Compare Scalar Single-Precision Floating- Point Values and Set EFLAGS |
| UD2 |
Undefined Instruction |
| UNPCKHPD |
Unpack and Interleave High Packed Double- Precision Floating-Point Values |
| UNPCKHPS |
Unpack and Interleave High Packed Single-Precision Floating-Point Values |
| UNPCKLPD |
Unpack and Interleave Low Packed Double-Precision Floating-Point Values |
| UNPCKLPS |
Unpack and Interleave Low Packed Single-Precision Floating-Point Values |
| 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 |
| XORPD |
Bitwise Logical XOR for Double-Precision Floating-Point Values |
| XORPS |
Bitwise Logical XOR for Single-Precision Floating-Point Values |