x86 Opcode Map
Reverse lookup instructions by their hexadecimal encoding.
| Opcode | Mnemonic | Syntax | Format | Name |
|---|---|---|---|---|
| D9 /3 | fstp | FSTP m32fp/m64fp/m80fp | Legacy | Store Floating Point Value and Pop |
| 9B DF E0 | fstsw | FSTSW AX | Legacy | Store Status Word |
| D8 /4 | fsub | FSUB m32fp/m64fp | Legacy | Subtract Floating Point |
| DD E0+i | fucom | FUCOM ST(i) | Legacy | Unordered Compare Real |
| D9 C8+i | fxch | FXCH ST(i) | Legacy | Exchange Register |
| D9 F4 | fxtract | FXTRACT | Legacy | Extract Exponent and Significand |
| D9 F1 | fyl2x | FYL2X | Legacy | Y * log2(X) |
| D9 F9 | fyl2xp1 | FYL2XP1 | Legacy | Compute y * log2(x + 1) |
| NP 0F 37 | getsec | GETSEC | Legacy | Get Security Extensions |
| 66 0F 3A CF /r ib | gf2p8affineinvqb | GF2P8AFFINEINVQB xmm1, xmm2/m128, imm8 | VEX | Galois Field Affine Transformation Inverse |
| 66 0F 3A CE /r ib | gf2p8affineqb | GF2P8AFFINEQB xmm1, xmm2/m128, imm8 | VEX | Galois Field Affine Transformation |
| 66 0F 38 CF /r | gf2p8mulb | GF2P8MULB xmm1, xmm2/m128 | VEX | Galois Field Multiply Bytes |
| 66 0F 7C | haddpd | HADDPD xmm1, xmm2/m128 | SSE3 | Horizontal Add Packed Double-Precision |
| F2 0F 7C | haddps | HADDPS xmm1, xmm2/m128 | SSE3 | Horizontal Add Packed Single-Precision |
| F4 | hlt | HLT | Legacy | Halt |
| F3 0F 3A F0 C0 ib | hreset | HRESET imm8 | Legacy | History Reset |
| 66 0F 7D | hsubpd | HSUBPD xmm1, xmm2/m128 | SSE3 | Horizontal Subtract Packed Double-Precision |
| F2 0F 7D | hsubps | HSUBPS xmm1, xmm2/m128 | SSE3 | Horizontal Subtract Packed Single-Precision |
| F7 /7 | idiv | IDIV r/m | Legacy | Signed Divide |
| 0F AF | imul | IMUL r, r/m | Legacy | Signed Multiply |
| E4 | in | IN AL, imm8 | Legacy | Input from Port |
| ED | in | IN AL/AX/EAX, DX | Legacy | Input from Port (Variable) |
| FF /0 | inc | INC r/m | Legacy | Increment |
| F3 REX.W 0F AE /5 | incsspq | INCSSPQ r64 | Legacy | Increment Shadow Stack Pointer (Quadword) |
| 6C | ins | INSB | Legacy | Input String from Port |
| 6D | insd | INSD | Legacy | Input String Doubleword from Port |
| 66 0F 3A 21 | insertps | INSERTPS xmm1, xmm2/m32, imm8 | SSE4.1 | Insert Packed Single-Precision |
| F2 0F 79 /r | insertq | INSERTQ xmm1, xmm2 | SSE4a | Insert Field to Register |
| 6D | insw | INSW | Legacy | Input String Word from Port |
| CD ib | int | INT imm8 | Legacy | Interrupt |
| F1 | int1 | INT1 | Legacy | ICE Breakpoint |
| CC | int3 | INT3 | Legacy | Breakpoint |
| 0F 08 | invd | INVD | System | Invalidate Internal Caches |
| 66 0F 38 80 | invept | INVEPT r64, m128 | VMX | Invalidate Translations Derived from EPT |
| 0F 01/7 | invlpg | INVLPG m | System | Invalidate TLB Entry |
| 0F 01 DF | invlpga | INVLPGA | SVM | Invalidate TLB Entry in ASID |
| 66 0F 38 82 | invpcid | INVPCID r32, m128 | Legacy | Invalidate Process-Context Identifier |
| 66 0F 38 81 | invvpid | INVVPID r64, m128 | VMX | Invalidate Translations Based on VPID |
| CF | iret | IRET | Legacy | Interrupt Return |
| CF | iretd | IRETD | Legacy | Interrupt Return Doubleword |
| REX.W + CF | iretq | IRETQ | Legacy | Interrupt Return Quadword |
| 77 | ja | JA rel | Legacy | Jump if Above |
| 72 | jb | JB rel | Legacy | Jump if Below |
| 74 | je | JE rel | Legacy | Jump if Equal |
| E3 | jecxz | JECXZ rel | Legacy | Jump if ECX is Zero |
| 7F | jg | JG rel | Legacy | Jump if Greater |
| 7C | jl | JL rel | Legacy | Jump if Less |
| EB CB | jmp | JMP rel | Legacy | Jump |
| 75 | jne | JNE rel | Legacy | Jump if Not Equal |
| 71 | jno | JNO rel | Legacy | Jump if Not Overflow |
| 7B | jnp | JNP rel | Legacy | Jump if Not Parity |
| 79 | jns | JNS rel | Legacy | Jump if Not Sign |
| 70 | jo | JO rel | Legacy | Jump if Overflow |
| 7A | jp | JP rel | Legacy | Jump if Parity |
| 78 | js | JS rel | Legacy | Jump if Sign |
| VEX.L1.66.0F.W0 4A /r | kaddb | KADDB k1, k2, k3 | EVEX | Add Masks Byte |
| VEX.L1.0F.W0 4A /r | kaddw | KADDW k1, k2, k3 | EVEX | Add Masks Word |
| VEX.L1.0F.W0 42 /r | kandnw | KANDNW k1, k2, k3 | EVEX | Bitwise Logical AND NOT Masks Word |
| VEX.L1.0F.W1 41 /r | kandq | KANDQ k1, k2, k3 | EVEX | Bitwise Logical AND Masks Quadword |
| VEX.L1.0F.W0 41 /r | kandw | KANDW k1, k2, k3 | EVEX | Bitwise Logical AND Masks Word |
| VEX.L0.0F.W1 90 /r | kmovq | KMOVQ k1, k2/m64 | EVEX | Move Quadword Mask Register |
| VEX.L0.0F.W0 90 /r | kmovw | KMOVW k1, k2/m16 | EVEX | Move Word Mask Register |
| VEX.L0.66.0F.W0 44 /r | knotb | KNOTB k1, k2 | EVEX | NOT Mask Byte |
| VEX.L0.66.0F.W1 44 /r | knotd | KNOTD k1, k2 | EVEX | NOT Mask Doubleword |
| VEX.L0.0F.W1 44 /r | knotq | KNOTQ k1, k2 | EVEX | Bitwise Logical NOT Masks Quadword |
| VEX.L0.0F.W0 44 /r | knotw | KNOTW k1, k2 | EVEX | Bitwise Logical NOT Masks Word |
| VEX.L1.66.0F.W0 45 /r | korb | KORB k1, k2, k3 | EVEX | OR Mask Byte |
| VEX.L1.66.0F.W1 45 /r | kord | KORD k1, k2, k3 | EVEX | OR Mask Doubleword |
| VEX.L1.0F.W1 45 /r | korq | KORQ k1, k2, k3 | EVEX | Bitwise Logical OR Masks Quadword |
| VEX.L0.66.0F.W0 98 /r | kortestb | KORTESTB k1, k2 | EVEX | OR Masks and Set Flags Byte |
| VEX.L0.0F.W1 98 /r | kortestq | KORTESTQ k1, k2 | EVEX | OR Masks and Set Flags Quadword |
| VEX.L0.0F.W0 98 /r | kortestw | KORTESTW k1, k2 | EVEX | OR Masks And Set Flags Word |
| VEX.L1.0F.W0 45 /r | korw | KORW k1, k2, k3 | EVEX | Bitwise Logical OR Masks Word |
| VEX.L0.66.0F3A.W0 32 /r | kshiftlb | KSHIFTLB k1, k2, imm8 | EVEX | Shift Left Mask Byte |
| VEX.L0.66.0F3A.W0 33 /r | kshiftld | KSHIFTLD k1, k2, imm8 | EVEX | Shift Left Mask Doubleword |
| VEX.L0.66.0F3A.W1 33 /r | kshiftlq | KSHIFTLQ k1, k2, imm8 | EVEX | Shift Left Mask Quadword |
| VEX.L0.66.0F3A.W1 32 /r | kshiftlw | KSHIFTLW k1, k2, imm8 | EVEX | Shift Left Mask Word |
| VEX.L0.66.0F3A.W0 30 /r | kshiftrb | KSHIFTRB k1, k2, imm8 | EVEX | Shift Right Mask Byte |
| VEX.L0.66.0F3A.W0 31 /r | kshiftrd | KSHIFTRD k1, k2, imm8 | EVEX | Shift Right Mask Doubleword |
| VEX.L0.66.0F3A.W1 31 /r | kshiftrq | KSHIFTRQ k1, k2, imm8 | EVEX | Shift Right Mask Quadword |
| VEX.L0.66.0F3A.W1 30 /r | kshiftrw | KSHIFTRW k1, k2, imm8 | EVEX | Shift Right Mask Word |
| VEX.L0.66.0F.W0 99 /r | ktestb | KTESTB k1, k2 | EVEX | Test Masks Byte |
| VEX.L0.66.0F.W1 99 /r | ktestd | KTESTD k1, k2 | EVEX | Test Masks Doubleword |
| VEX.L0.0F.W1 99 /r | ktestq | KTESTQ k1, k2 | EVEX | Test Masks Quadword |
| VEX.L0.0F.W0 99 /r | ktestw | KTESTW k1, k2 | EVEX | Test Masks Word |
| VEX.L1.66.0F.W0 4B /r | kunpckbw | KUNPCKBW k1, k2, k3 | EVEX | Unpack and Interleave Masks Byte to Word |
| VEX.L1.0F.W1 4B /r | kunpckdq | KUNPCKDQ k1, k2, k3 | EVEX | Unpack and Interleave Masks Doubleword to Quadword |
| VEX.L1.0F.W0 4B /r | kunpckwd | KUNPCKWD k1, k2, k3 | EVEX | Unpack and Interleave Masks Word to Doubleword |
| VEX.L1.66.0F.W0 47 /r | kxorb | KXORB k1, k2, k3 | EVEX | XOR Mask Byte |
| VEX.L1.66.0F.W1 47 /r | kxord | KXORD k1, k2, k3 | EVEX | XOR Mask Doubleword |
| VEX.L1.0F.W1 47 /r | kxorq | KXORQ k1, k2, k3 | EVEX | XOR Mask Quadword |
| VEX.L1.0F.W0 47 /r | kxorw | KXORW k1, k2, k3 | EVEX | Bitwise Logical XOR Masks Word |
| 9F | lahf | LAHF | Legacy | Load Flags into AH |
| 0F 02 | lar | LAR r, r/m16 | System | Load Access Rights Byte |
| F2 0F F0 | lddqu | LDDQU xmm1, m128 | SSE3 | Load Unaligned Integer 128-bit |
| NP 0F AE /2 | ldmxcsr | LDMXCSR m32 | SSE | Load MXCSR Register |
| C5 | lds | LDS r, m | Legacy | Load Far Pointer using DS |
| VEX.128.NP.0F38.W0 49 !(11):000:bbb | ldtilecfg | LDTILECFG m512 | VEX | Load Tile Configuration |
| 8D | lea | LEA r, m | Legacy | Load Effective Address |
| C9 | leave | LEAVE | Legacy | High Level Procedure Exit |