x86 Opcode Map
Reverse lookup instructions by their hexadecimal encoding.
| Opcode | Mnemonic | Syntax | Format | Name |
|---|---|---|---|---|
| 0F 90 | seto | SETO r/m8 | Legacy | Set Byte on Overflow |
| 0F 9A | setp | SETP r/m8 | Legacy | Set Byte on Parity |
| 0F 98 | sets | SETS r/m8 | Legacy | Set Byte on Sign |
| 0F 94 | setz | SETZ r/m8 | Legacy | Set Byte on Zero |
| NP 0F AE F8 | sfence | SFENCE | SSE | Store Fence |
| 0F 01 /0 | sgdt | SGDT m | System | Store Global Descriptor Table Register |
| NP 0F 38 C9 /r | sha1msg1 | SHA1MSG1 xmm1, xmm2/m128 | Legacy | SHA1 Message Schedule 1 |
| NP 0F 38 CA /r | sha1msg2 | SHA1MSG2 xmm1, xmm2/m128 | Legacy | SHA1 Message Schedule 2 |
| NP 0F 38 C8 /r | sha1nexte | SHA1NEXTE xmm1, xmm2/m128 | Legacy | SHA1 State Variable E |
| NP 0F 3A CC /r ib | sha1rnds4 | SHA1RNDS4 xmm1, xmm2/m128, imm8 | Legacy | SHA1 Rounds 4 |
| NP 0F 38 CC /r | sha256msg1 | SHA256MSG1 xmm1, xmm2/m128 | Legacy | SHA256 Message Schedule 1 |
| NP 0F 38 CD /r | sha256msg2 | SHA256MSG2 xmm1, xmm2/m128 | Legacy | SHA256 Message Schedule 2 |
| NP 0F 38 CB /r | sha256rnds2 | SHA256RNDS2 xmm1, xmm2/m128, xmm0 | Legacy | SHA256 Rounds 2 |
| C1 /4 | shl | SHL r/m, imm8 | Legacy | Shift Logical Left |
| 0F A4 | shld | SHLD r/m, r, imm8 | Legacy | Double Precision Shift Left |
| VEX.LZ.66.0F38.W0 F7 /r | shlx | SHLX r32, r/m32, r32 | VEX | Shift Logical Left Without Affecting Flags |
| C1 /5 | shr | SHR r/m, imm8 | Legacy | Shift Logical Right |
| 0F AC | shrd | SHRD r/m, r, imm8 | Legacy | Double Precision Shift Right |
| VEX.LZ.F2.0F38.W0 F7 /r | shrx | SHRX r32, r/m32, r32 | VEX | Shift Logical Right Without Affecting Flags |
| 66 0F C6 | shufpd | SHUFPD xmm1, xmm2/m128, imm8 | SSE2 | Shuffle Packed Double-Precision |
| NP 0F C6 /r ib | shufps | SHUFPS xmm1, xmm2/m128, imm8 | SSE | Shuffle Packed Single-Precision |
| 0F 01 /1 | sidt | SIDT m | System | Store Interrupt Descriptor Table Register |
| 0F 00 /0 | sldt | SLDT r/m16 | System | Store Local Descriptor Table Register |
| 0F 01 /4 | smsw | SMSW r/m16 | System | Store Machine Status Word |
| 66 0F 51 | sqrtpd | SQRTPD xmm, xmm/m128 | SSE2 | Square Root Packed Double-Precision |
| NP 0F 51 /r | sqrtps | SQRTPS xmm, xmm/m128 | SSE | Square Root Packed Single-Precision |
| F2 0F 51 | sqrtsd | SQRTSD xmm1, xmm2/m64 | SSE2 | Square Root Scalar Double-Precision |
| F3 0F 51 | sqrtss | SQRTSS xmm1, xmm2/m32 | SSE | Square Root Scalar Single-Precision |
| NP 0F 01 CB | stac | STAC | Legacy | Set AC Flag in EFLAGS |
| F9 | stc | STC | Legacy | Set Carry Flag |
| FD | std | STD | Legacy | Set Direction Flag |
| 0F 01 DC | stgi | STGI | SVM | Set Global Interrupt Flag |
| FB | sti | STI | Legacy | Set Interrupt Flag |
| NP 0F AE /3 | stmxcsr | STMXCSR m32 | SSE | Store MXCSR Register |
| AA | stos | STOSB | Legacy | Store String |
| AB | stosd | STOSD | Legacy | Store String Doubleword |
| REX.W + AB | stosq | STOSQ | Legacy | Store String Quadword |
| AB | stosw | STOSW | Legacy | Store String Word |
| 0F 00 /1 | str | STR r/m16 | System | Store Task Register |
| VEX.128.66.0F38.W0 49 !(11):000:bbb | sttilecfg | STTILECFG m512 | VEX | Store Tile Configuration |
| F3 0F 01 EF | stui | STUI | Legacy | Set User Interrupt Flag |
| 29 | sub | SUB r/m, r | Legacy | Subtract |
| 66 0F 5C | subpd | SUBPD xmm, xmm/m128 | SSE2 | Subtract Packed Double-Precision |
| NP 0F 5C /r | subps | SUBPS xmm, xmm/m128 | SSE | Subtract Packed Single-Precision |
| F2 0F 5C | subsd | SUBSD xmm1, xmm2/m64 | SSE2 | Subtract Scalar Double-Precision |
| F3 0F 5C | subss | SUBSS xmm1, xmm2/m32 | SSE | Subtract Scalar Single-Precision |
| 0F 01 F8 | swapgs | SWAPGS | Legacy | Swap GS Base Register |
| 0F 05 | syscall | SYSCALL | System | System Call |
| 0F 34 | sysenter | SYSENTER | System | Fast System Call |
| 0F 35 | sysexit | SYSEXIT | System | Fast Return from System Call |
| 0F 07 | sysret | SYSRET | System | Return from System Call |
| XOP.L0.09.W0 01 /7 | t1mskc | T1MSKC r32, r/m32 | TBM | Inverse Mask From Trailing Ones |
| VEX.128.F3.0F38.W0 5C 11:rrr:bbb | tdpbf16ps | TDPBF16PS tmm1, tmm2, tmm3 | VEX | Tile Dot Product BFloat16 Packed Single |
| VEX.128.F2.0F38.W0 5E 11:rrr:bbb | tdpbssd | TDPBSSD tmm1, tmm2, tmm3 | VEX | Tile Dot Product Byte Signed Signed Doubleword |
| VEX.128.F3.0F38.W0 5E 11:rrr:bbb | tdpbsud | TDPBSUD tmm1, tmm2, tmm3 | VEX | Tile Dot Product Byte Signed Unsigned Doubleword |
| VEX.128.66.0F38.W0 5E 11:rrr:bbb | tdpbusd | TDPBUSD tmm1, tmm2, tmm3 | VEX | Tile Dot Product Byte Unsigned Signed Doubleword |
| VEX.128.NP.0F38.W0 5E 11:rrr:bbb | tdpbuud | TDPBUUD tmm1, tmm2, tmm3 | VEX | Tile Dot Product Byte Unsigned Unsigned Doubleword |
| VEX.128.F2.0F38.W0 5C 11:rrr:bbb | tdpfp16ps | TDPFP16PS tmm1, tmm2, tmm3 | VEX | Tile Dot Product FP16 Packed Single |
| 85 | test | TEST r/m, r | Legacy | Logical Compare |
| F3 0F 01 ED | testui | TESTUI | Legacy | Test User Interrupt |
| VEX.128.F2.0F38.W0 4B !(11):rrr:100 | tileloadd | TILELOADD tmm1, m | VEX | Load Tile Data |
| VEX.128.66.0F38.W0 4B !(11):rrr:100 | tileloaddt1 | TILELOADDT1 tmm1, m | VEX | Load Tile Data (T1 Hint) |
| VEX.128.F3.0F38.W0 4B !(11):rrr:100 | tilestored | TILESTORED m, tmm1 | VEX | Store Tile Data |
| VEX.128.F2.0F38.W0 49 11:rrr:000 | tilezero | TILEZERO tmm1 | VEX | Zero Tile |
| 66 0F AE 11:110:bbb | tpause | TPAUSE r32 | Legacy | Timed Pause |
| F3 0F BC | tzcnt | TZCNT r32, r/m32 | Legacy | Count Trailing Zeros |
| XOP.L0.09.W0 01 /4 | tzmsk | TZMSK r32, r/m32 | TBM | Mask From Trailing Zeros |
| 66 0F 2E | ucomisd | UCOMISD xmm1, xmm2/m64 | SSE2 | Unordered Compare Scalar Double-Precision |
| NP 0F 2E /r | ucomiss | UCOMISS xmm1, xmm2/m32 | SSE | Unordered Compare Scalar Single-Precision |
| 0F FF /r | ud0 | UD0 | Legacy | Undefined Instruction 0 |
| 0F 0B | ud2 | UD2 | Legacy | Undefined Instruction |
| F3 0F 01 EC | uiret | UIRET | Legacy | User Interrupt Return |
| F3 0F AE 11:110:bbb | umonitor | UMONITOR r64 | Legacy | User Level Monitor |
| F2 0F AE /6 | umwait | UMWAIT r32 | Legacy | User Level Monitor Wait |
| 66 0F 15 | unpckhpd | UNPCKHPD xmm1, xmm2/m128 | SSE2 | Unpack High Packed Double-Precision |
| NP 0F 15 /r | unpckhps | UNPCKHPS xmm1, xmm2/m128 | SSE | Unpack High Packed Single-Precision |
| 66 0F 14 | unpcklpd | UNPCKLPD xmm1, xmm2/m128 | SSE2 | Unpack Low Packed Double-Precision |
| NP 0F 14 /r | unpcklps | UNPCKLPS xmm1, xmm2/m128 | SSE | Unpack Low Packed Single-Precision |
| EVEX.512.F2.0F38.W0 9A /r | v4fmaddps | V4FMADDPS zmm1 {k1}, zmm2+3, m128 | EVEX | Fused Multiply-Add Packed Single (4-iterations) |
| EVEX.LLIG.F2.0F38.W0 9B /r | v4fmaddss | V4FMADDSS xmm1 {k1}, xmm2+3, m128 | EVEX | Fused Multiply-Add Scalar Single (4-iterations) |
| EVEX.512.F2.0F38.W0 AA /r | v4fnmaddps | V4FNMADDPS zmm1 {k1}, zmm2+3, m128 | EVEX | Fused Negative Multiply-Add Packed Single (4-iterations) |
| EVEX.LLIG.F2.0F38.W0 AB /r | v4fnmaddss | V4FNMADDSS xmm1 {k1}, xmm2+3, m128 | EVEX | Fused Negative Multiply-Add Scalar Single (4-iterations) |
| EVEX.512.NP.MAP5.W0 58 /r | vaddph | VADDPH zmm1 {k1}, zmm2, zmm3/m512 | EVEX | Add Packed FP16 Values |
| VEX.256.0F.WIG 58 /r | vaddps | VADDPS ymm1, ymm2, ymm3/m256 | VEX | Add Packed Single-Precision (AVX) |
| EVEX.LLIG.F3.MAP5.W0 58 /r | vaddsh | VADDSH xmm1 {k1}, xmm2, xmm3/m16 | EVEX | Add Scalar Half-Precision |
| EVEX.LLIG.F3.0F.W0 58 /r | vaddss | VADDSS xmm1 {k1}, xmm2, xmm3/m32 | EVEX | Add Scalar Single-Precision (EVEX) |
| EVEX.512.66.0F38.WIG DE /r | vaesdec | VAESDEC zmm1, zmm2, zmm3/m512 | EVEX | Vector AES Decrypt (AVX512) |
| EVEX.512.66.0F38.WIG DC /r | vaesenc | VAESENC zmm1, zmm2, zmm3/m512 | EVEX | Vector AES Encrypt (AVX512) |
| EVEX.512.66.0F3A.W0 03 /r ib | valignd | VALIGND zmm1 {k1}, zmm2, zmm3/m512, imm8 | EVEX | Align Doubleword Vectors |
| EVEX.512.66.0F3A.W1 03 /r ib | valignq | VALIGNQ zmm1 {k1}, zmm2, zmm3/m512, imm8 | EVEX | Align Quadword Vectors |
| VEX.256.66.0F38.W0 1A /r | vbroadcastf128 | VBROADCASTF128 ymm1, m128 | VEX | Broadcast 128-bit Floating-Point |
| VEX.256.66.0F38.W0 5A /r | vbroadcasti128 | VBROADCASTI128 ymm1, m128 | VEX | Broadcast 128-bit Integer |
| VEX.256.66.0F38.W0 19 /r | vbroadcastsd | VBROADCASTSD ymm1, m64 | VEX | Broadcast Scalar Double |
| VEX.256.66.0F38.W0 18 /r | vbroadcastss | VBROADCASTSS ymm1, m32 | AVX | Broadcast Scalar Single |
| VEX.256.66.0F.WIG C2 /r ib | vcmppd | VCMPPD ymm1, ymm2, ymm3/m256, imm8 | VEX | Compare Packed Double-Precision (AVX) |
| VEX.256.0F.WIG C2 /r ib | vcmpps | VCMPPS ymm1, ymm2, ymm3/m256, imm8 | VEX | Compare Packed Single-Precision (AVX) |
| EVEX.512.66.0F38.W1 8A /r | vcompresspd | VCOMPRESSPD m512 {k1}, zmm1 | EVEX | Store Sparse Packed Double-Precision Floating-Point Values |
| EVEX.512.66.0F38.W0 8A /r | vcompressps | VCOMPRESSPS m512 {k1}, zmm1 | EVEX | Store Sparse Packed Single-Precision Floating-Point Values |
| VEX.256.0F.WIG 5B /r | vcvtdq2ps | VCVTDQ2PS ymm1, ymm2/m256 | VEX | Convert Packed Doubleword to Packed Single |
| EVEX.512.F2.0F38.W0 72 /r | vcvtne2ps2bf16 | VCVTNE2PS2BF16 zmm1 {k1}, zmm2, zmm3/m512 | EVEX | Convert Two Packed Single to Packed BFloat16 |