x86 Opcode Map
Reverse lookup instructions by their hexadecimal encoding.
| Opcode | Mnemonic | Syntax | Format | Name |
|---|---|---|---|---|
| 37 | aaa | AAA | Legacy | ASCII Adjust After Addition |
| D5 | aad | AAD imm8 | Legacy | ASCII Adjust Before Division |
| NP 0F 38 FC !(11):rrr:bbb | aadd | AADD m32, r32 | VEX | Atomically Add |
| D4 | aam | AAM imm8 | Legacy | ASCII Adjust After Multiply |
| 66 0F 38 FC !(11):rrr:bbb | aand | AAND m32, r32 | VEX | Atomically AND |
| 3F | aas | AAS | Legacy | ASCII Adjust After Subtraction |
| 11 | adc | ADC r/m, r | Legacy | Add with Carry |
| 66 0F 38 F6 | adcx | ADCX r32, r/m32 | Legacy | Unsigned Integer Addition of Two Operands with Carry Flag |
| 01 | add | ADD r/m, r | Legacy | Add |
| 66 0F 58 | addpd | ADDPD xmm, xmm/m128 | SSE2 | Add Packed Double-Precision |
| NP 0F 58 /r | addps | ADDPS xmm, xmm/m128 | SSE | Add Packed Single-Precision |
| F2 0F 58 | addsd | ADDSD xmm, xmm/m64 | SSE2 | Add Scalar Double-Precision |
| F3 0F 58 | addss | ADDSS xmm, xmm/m32 | SSE | Add Scalar Single-Precision |
| 66 0F D0 | addsubpd | ADDSUBPD xmm1, xmm2/m128 | SSE3 | Packed Double-FP Add/Subtract |
| F2 0F D0 | addsubps | ADDSUBPS xmm1, xmm2/m128 | SSE3 | Packed Single-FP Add/Subtract |
| F3 0F 38 F6 | adox | ADOX r32, r/m32 | Legacy | Unsigned Integer Addition of Two Operands with Overflow Flag |
| 66 0F 38 DE | aesdec | AESDEC xmm1, xmm2/m128 | AES-NI | AES Decrypt |
| F3 0F 38 DD !(11):rrr:bbb | aesdec128kl | AESDEC128KL m128, xmm | Legacy | AES Decrypt 128-bit Key Locker |
| F3 0F 38 DF !(11):rrr:bbb | aesdec256kl | AESDEC256KL m128, xmm | Legacy | AES Decrypt 256-bit Key Locker |
| F3 0F 38 D8 !(11):001:bbb | aesdecwide128kl | AESDECWIDE128KL m128 | Legacy | AES Decrypt Wide 128-bit Key Locker |
| F3 0F 38 D8 !(11):011:bbb | aesdecwide256kl | AESDECWIDE256KL m128 | Legacy | AES Decrypt Wide 256-bit Key Locker |
| 66 0F 38 DC | aesenc | AESENC xmm1, xmm2/m128 | AES-NI | AES Encrypt |
| F3 0F 38 DC !(11):rrr:bbb | aesenc128kl | AESENC128KL m128, xmm | Legacy | AES Encrypt 128-bit Key Locker |
| F3 0F 38 DE !(11):rrr:bbb | aesenc256kl | AESENC256KL m128, xmm | Legacy | AES Encrypt 256-bit Key Locker |
| 66 0F 38 DD | aesenclast | AESENCLAST xmm1, xmm2/m128 | AES-NI | AES Encrypt Last Round |
| F3 0F 38 D8 !(11):000:bbb | aesencwide128kl | AESENCWIDE128KL m128 | Legacy | AES Encrypt Wide 128-bit Key Locker |
| F3 0F 38 D8 !(11):010:bbb | aesencwide256kl | AESENCWIDE256KL m128 | Legacy | AES Encrypt Wide 256-bit Key Locker |
| 66 0F 38 DB | aesimc | AESIMC xmm1, xmm2/m128 | AES-NI | AES Inverse Mix Columns |
| 66 0F 3A DF | aeskeygenassist | AESKEYGENASSIST xmm1, xmm2/m128, imm8 | AES-NI | AES Key Generation Assist |
| 21 | and | AND r/m, r | Legacy | Logical AND |
| VEX.LZ.0F38.W0 F2 /r | andn | ANDN r32, r32, r/m32 | VEX | Logical AND NOT |
| 66 0F 54 | andpd | ANDPD xmm, xmm/m128 | SSE2 | Bitwise Logical AND Packed Double-Precision |
| NP 0F 54 /r | andps | ANDPS xmm, xmm/m128 | SSE | Bitwise Logical AND Packed Single-Precision |
| F2 0F 38 FC !(11):rrr:bbb | aor | AOR m32, r32 | VEX | Atomically OR |
| 63 | arpl | ARPL r/m16, r16 | System | Adjust Requested Privilege Level |
| F3 0F 38 FC !(11):rrr:bbb | axor | AXOR m32, r32 | VEX | Atomically XOR |
| VEX.LZ.0F38.W0 F7 /r | bextr | BEXTR r32, r/m32, r32 | VEX | Bit Field Extract |
| XOP.L0.09.W0 01 /1 | blcfill | BLCFILL r32, r/m32 | TBM | Fill From Lowest Clear Bit |
| XOP.L0.09.W0 02 /6 | blci | BLCI r32, r/m32 | TBM | Bit Line Create Isolated |
| XOP.L0.09.W0 01 /5 | blcic | BLCIC r32, r/m32 | TBM | Bit Line Create Isolated and Complement |
| XOP.L0.09.W0 02 /1 | blcmsk | BLCMSK r32, r/m32 | TBM | Bit Line Create Mask |
| XOP.L0.09.W0 01 /3 | blcs | BLCS r32, r/m32 | TBM | Bit Line Create Set |
| 66 0F 3A 0D | blendpd | BLENDPD xmm1, xmm2/m128, imm8 | SSE4.1 | Blend Packed Double-Precision |
| 66 0F 3A 0C | blendps | BLENDPS xmm1, xmm2/m128, imm8 | SSE4.1 | Blend Packed Single-Precision |
| 66 0F 38 15 | blendvpd | BLENDVPD xmm1, xmm2/m128, <XMM0> | SSE4.1 | Variable Blend Packed Double |
| 66 0F 38 14 | blendvps | BLENDVPS xmm1, xmm2/m128, <XMM0> | SSE4.1 | Variable Blend Packed Single |
| XOP.L0.09.W0 01 /2 | blsfill | BLSFILL r32, r/m32 | TBM | Bit Line Set Fill |
| VEX.LZ.0F38.W0 F3 /3 | blsi | BLSI r32, r/m32 | VEX | Extract Lowest Set Isolated Bit |
| XOP.L0.09.W0 01 /6 | blsic | BLSIC r32, r/m32 | TBM | Bit Line Set Isolated and Complement |
| VEX.LZ.0F38.W0 F3 /2 | blsmsk | BLSMSK r32, r/m32 | VEX | Get Mask Up to Lowest Set Bit |
| VEX.LZ.0F38.W0 F3 /1 | blsr | BLSR r32, r/m32 | VEX | Reset Lowest Set Bit |
| F3 0F 1A | bndcl | BNDCL b, r/m | Legacy | Check Lower Bound |
| F2 0F 1A | bndcu | BNDCU b, r/m | Legacy | Check Upper Bound |
| F3 0F 1B | bndmk | BNDMK b, m | Legacy | Make Bounds |
| 66 0F 1A | bndmov | BNDMOV b, b/m | Legacy | Move Bounds |
| 62 | bound | BOUND r, m | Legacy | Check Array Index Against Bounds |
| 0F BC | bsf | BSF r, r/m | Legacy | Bit Scan Forward |
| 0F BD | bsr | BSR r, r/m | Legacy | Bit Scan Reverse |
| 0F C8+rd | bswap | BSWAP r32 | Legacy | Byte Swap |
| 0F C8 | bswap | BSWAP r | Legacy | Byte Swap |
| 0F A3 | bt | BT r/m, r | Legacy | Bit Test |
| 0F BB | btc | BTC r/m, r | Legacy | Bit Test and Complement |
| 0F B3 | btr | BTR r/m, r | Legacy | Bit Test and Reset |
| 0F AB | bts | BTS r/m, r | Legacy | Bit Test and Set |
| VEX.LZ.0F38.W0 F5 /r | bzhi | BZHI r32, r/m32, r32 | VEX | Zero High Bits Starting with Specified Bit Position |
| E8 | call | CALL rel | Legacy | Call Procedure |
| 98 | cbw | CBW | Legacy | Convert Byte to Word |
| NP 0F 01 CA | clac | CLAC | Legacy | Clear AC Flag in EFLAGS |
| F8 | clc | CLC | Legacy | Clear Carry Flag |
| FC | cld | CLD | Legacy | Clear Direction Flag |
| NP 0F 1C /0 | cldemote | CLDEMOTE m8 | Legacy | Cache Line Demote |
| NP 0F AE /7 | clflush | CLFLUSH m8 | SSE2 | Cache Line Flush |
| NFx 66 0F AE /7 | clflushopt | CLFLUSHOPT m8 | Legacy | Optimized Cache Line Flush |
| 0F 01 DD | clgi | CLGI | SVM | Clear Global Interrupt Flag |
| FA | cli | CLI | Legacy | Clear Interrupt Flag |
| F3 0F AE !(11):110:bbb | clrssbsy | CLRSSBSY m64 | Legacy | Clear Shadow Stack Busy Flag |
| 99 | cltd | CLTD | Legacy | Convert Long to Double Long |
| 0F 06 | clts | CLTS | System | Clear Task-Switched Flag |
| F3 0F 01 EE | clui | CLUI | Legacy | Clear User Interrupt Flag |
| 66 0F AE !(11):110:bbb | clwb | CLWB m8 | Legacy | Cache Line Write Back |
| 0F 01 FC | clzero | CLZERO | AMD | Zero Cache Line |
| F5 | cmc | CMC | Legacy | Complement Carry Flag |
| 0F 40 /r | cmovcc | CMOVcc r, r/m | Legacy | Conditional Move |
| 0F 4F | cmovg | CMOVG r, r/m | Legacy | Conditional Move Greater |
| 0F 4D | cmovge | CMOVGE r, r/m | Legacy | Conditional Move Greater or Equal |
| 0F 4C | cmovl | CMOVL r, r/m | Legacy | Conditional Move Less |
| 0F 4E | cmovle | CMOVLE r, r/m | Legacy | Conditional Move Less or Equal |
| 0F 45 | cmovnz | CMOVNZ r, r/m | Legacy | Conditional Move Not Zero |
| 0F 44 | cmovz | CMOVZ r, r/m | Legacy | Conditional Move Zero |
| 39 | cmp | CMP r/m, r | Legacy | Compare Two Operands |
| VEX.128.66.0F38.W0 E0 /r | cmpccxadd | CMPccXADD m32, r32, r32 | EVEX | Compare and Add if Condition is Met |
| A6 | cmps | CMPSB | Legacy | Compare String |
| F2 0F C2 | cmpsd | CMPSD xmm1, xmm2/m64, imm8 | SSE2 | Compare Scalar Double-Precision |
| A7 | cmpsd | CMPSD | Legacy | Compare String Doubleword |
| REX.W + A7 | cmpsq | CMPSQ | Legacy | Compare String Quadword |
| F3 0F C2 | cmpss | CMPSS xmm1, xmm2/m32, imm8 | SSE | Compare Scalar Single-Precision |
| A7 | cmpsw | CMPSW | Legacy | Compare String Word |
| 0F B1 | cmpxchg | CMPXCHG r/m, r | Legacy | Compare and Exchange |
| REX.W + 0F C7 /1 | cmpxchg16b | CMPXCHG16B m128 | Base (64-bit) | Compare and Exchange 16 Bytes |
| 0F C7 /1 | cmpxchg8b | CMPXCHG8B m64 | Legacy | Compare and Exchange 8 Bytes |