x86 Opcode Map
Reverse lookup instructions by their hexadecimal encoding.
| Opcode | Mnemonic | Syntax | Format | Name |
|---|---|---|---|---|
| F3 0F 70 | pshufhw | PSHUFHW xmm1, xmm2/m128, imm8 | SSE2 | Packed Shuffle High Words |
| F2 0F 70 | pshuflw | PSHUFLW xmm1, xmm2/m128, imm8 | SSE2 | Packed Shuffle Low Words |
| 66 0F 38 08 | psignb | PSIGNB xmm1, xmm2/m128 | SSSE3 | Packed Sign Byte |
| 66 0F 72 /6 ib | pslld | PSLLD mm, imm8 | MMX | Packed Shift Left Logical Doubleword (MMX) |
| 66 0F 72 /6 | pslld | PSLLD xmm, imm8 | SSE2 | Packed Shift Left Logical Doubleword |
| 66 0F 73 /7 | pslldq | PSLLDQ xmm1, imm8 | SSE2 | Shift Double Quadword Left Logical |
| 66 0F 73 /6 ib | psllq | PSLLQ mm, imm8 | MMX | Packed Shift Left Logical Quadword (MMX) |
| NP 0F 71 /6 ib | psllw | PSLLW mm, imm8 | MMX | Packed Shift Left Logical Word (MMX) |
| 66 0F 71 /6 | psllw | PSLLW xmm, imm8 | SSE2 | Packed Shift Left Logical Word |
| 66 0F 72 /4 ib | psrad | PSRAD mm, imm8 | MMX | Packed Shift Right Arithmetic Doubleword (MMX) |
| 66 0F 72 /4 | psrad | PSRAD xmm, imm8 | SSE2 | Packed Shift Right Arithmetic Doubleword |
| 66 0F 71 /4 ib | psraw | PSRAW mm, imm8 | MMX | Packed Shift Right Arithmetic Word (MMX) |
| 66 0F 71 /4 | psraw | PSRAW xmm, imm8 | SSE2 | Packed Shift Right Arithmetic Word |
| 66 0F 72 /2 ib | psrld | PSRLD mm, imm8 | MMX | Packed Shift Right Logical Doubleword (MMX) |
| 66 0F 72 /2 | psrld | PSRLD xmm, imm8 | SSE2 | Packed Shift Right Logical Doubleword |
| 66 0F 73 /3 | psrldq | PSRLDQ xmm1, imm8 | SSE2 | Shift Double Quadword Right Logical |
| 66 0F 73 /2 ib | psrlq | PSRLQ mm, imm8 | MMX | Packed Shift Right Logical Quadword (MMX) |
| 66 0F 71 /2 ib | psrlw | PSRLW mm, imm8 | MMX | Packed Shift Right Logical Word (MMX) |
| 66 0F 71 /2 | psrlw | PSRLW xmm, imm8 | SSE2 | Packed Shift Right Logical Word |
| 66 0F F8 | psubb | PSUBB xmm, xmm/m128 | SSE2 | Packed Subtract Bytes |
| 66 0F FA | psubd | PSUBD xmm, xmm/m128 | SSE2 | Packed Subtract Doublewords |
| 66 0F FB | psubq | PSUBQ xmm1, xmm2/m128 | SSE2 | Packed Subtract Quadword |
| NP 0F E8 /r1 | psubsb | PSUBSB mm, mm/m64 | MMX | Packed Subtract Signed Saturate Byte (MMX) |
| NP 0F E9 /r1 | psubsw | PSUBSW mm, mm/m64 | MMX | Packed Subtract Signed Saturate Word (MMX) |
| 66 0F E9 | psubsw | PSUBSW xmm1, xmm2/m128 | SSE2 | Packed Subtract Signed Saturation Word |
| NP 0F D8 /r1 | psubusb | PSUBUSB mm, mm/m64 | MMX | Packed Subtract Unsigned Saturate Byte (MMX) |
| NP 0F D9 /r1 | psubusw | PSUBUSW mm, mm/m64 | MMX | Packed Subtract Unsigned Saturate Word (MMX) |
| 66 0F D9 | psubusw | PSUBUSW xmm1, xmm2/m128 | SSE2 | Packed Subtract Unsigned Saturation Word |
| 66 0F F9 | psubw | PSUBW xmm, xmm/m128 | SSE2 | Packed Subtract Words |
| 66 0F 38 17 | ptest | PTEST xmm1, xmm2/m128 | SSE4.1 | Packed Logical Comparison |
| F3 0F AE /4 | ptwrite | PTWRITE r32/r64 | Legacy | Write Data to Processor Trace |
| 66 0F 68 | punpckhbw | PUNPCKHBW xmm1, xmm2/m128 | SSE2 | Unpack High Data Bytes |
| 66 0F 6A | punpckhdq | PUNPCKHDQ xmm1, xmm2/m128 | SSE2 | Unpack High Data Doublewords |
| 66 0F 6D | punpckhqdq | PUNPCKHQDQ xmm1, xmm2/m128 | SSE2 | Unpack High Data Quadwords |
| 66 0F 69 | punpckhwd | PUNPCKHWD xmm1, xmm2/m128 | SSE2 | Unpack High Data Words |
| 66 0F 60 | punpcklbw | PUNPCKLBW xmm, xmm/m128 | SSE2 | Unpack Low Data Bytes |
| 66 0F 62 | punpckldq | PUNPCKLDQ xmm, xmm/m128 | SSE2 | Unpack Low Data Doublewords |
| 66 0F 6C | punpcklqdq | PUNPCKLQDQ xmm, xmm/m128 | SSE2 | Unpack Low Data Quadwords |
| 66 0F 61 | punpcklwd | PUNPCKLWD xmm, xmm/m128 | SSE2 | Unpack Low Data Words |
| FF /6 | push | PUSH r/m | Legacy | Push Word/Doubleword/Quadword Onto Stack |
| 60 | pusha | PUSHA | Legacy | Push All General-Purpose Registers |
| 9C | pushf | PUSHF | Legacy | Push Flags |
| NP 0F EF /r1 | pxor | PXOR mm, mm/m64 | MMX | Packed Logical XOR (MMX) |
| 66 0F EF | pxor | PXOR xmm, xmm/m128 | SSE2 | Packed Logical Exclusive OR |
| C1 /2 | rcl | RCL r/m, imm8 | Legacy | Rotate Carry Left |
| NP 0F 53 /r | rcpps | RCPPS xmm, xmm/m128 | SSE | Reciprocal Packed Single-Precision |
| F3 0F 53 | rcpss | RCPSS xmm1, xmm2/m32 | SSE | Reciprocal Scalar Single-Precision |
| C1 /3 | rcr | RCR r/m, imm8 | Legacy | Rotate Carry Right |
| F3 0F AE /0 | rdfsbase | RDFSBASE r64 | Legacy | Read FS Base |
| F3 0F AE /1 | rdgsbase | RDGSBASE r64 | Legacy | Read GS Base |
| 0F 32 | rdmsr | RDMSR | System | Read Model Specific Register |
| F3 0F C7 /7 | rdpid | RDPID r32 | Legacy | Read Processor ID |
| NP 0F 01 EE | rdpkru | RDPKRU | Legacy | Read Protection Key Rights |
| 0F 33 | rdpmc | RDPMC | System | Read Performance-Monitoring Counters |
| NFx 0F C7 /6 | rdrand | RDRAND r32 | Legacy | Read Random Number |
| NFx 0F C7 /7 | rdseed | RDSEED r32 | Legacy | Read Random Seed |
| F3 REX.W 0F 1E /1 | rdsspq | RDSSPQ r64 | Legacy | Read Shadow Stack Pointer (Quadword) |
| 0F 31 | rdtsc | RDTSC | Legacy | Read Time-Stamp Counter |
| 0F 01 F9 | rdtscp | RDTSCP | Legacy | Read Time-Stamp Counter and Processor ID |
| F3 A4 | rep movs | REP MOVS m, m | Legacy | Repeat Move String |
| F3 AA | rep stos | REP STOS m | Legacy | Repeat Store String |
| F3 A6 | repe cmps | REPE CMPS m, m | Legacy | Repeat Compare String Equal |
| F2 AE | repne scas | REPNE SCAS m | Legacy | Repeat Scan String Not Equal |
| C3 | ret | RET | Legacy | Return from Procedure |
| C1 /0 | rol | ROL r/m, imm8 | Legacy | Rotate Left |
| C1 /1 | ror | ROR r/m, imm8 | Legacy | Rotate Right |
| VEX.LZ.F2.0F3A.W0 F0 /r ib | rorx | RORX r32, r/m32, imm8 | VEX | Rotate Right Logical Without Affecting Flags |
| 66 0F 3A 09 | roundpd | ROUNDPD xmm1, xmm2/m128, imm8 | SSE4.1 | Round Packed Double-Precision |
| 66 0F 3A 08 | roundps | ROUNDPS xmm1, xmm2/m128, imm8 | SSE4.1 | Round Packed Single-Precision |
| 66 0F 3A 0B | roundsd | ROUNDSD xmm1, xmm2/m64, imm8 | SSE4.1 | Round Scalar Double-Precision |
| 66 0F 3A 0A | roundss | ROUNDSS xmm1, xmm2/m32, imm8 | SSE4.1 | Round Scalar Single-Precision |
| 0F AA | rsm | RSM | System | Resume from System Management Mode |
| NP 0F 52 /r | rsqrtps | RSQRTPS xmm, xmm/m128 | SSE | Reciprocal Square Root Packed Single-Precision |
| F3 0F 52 | rsqrtss | RSQRTSS xmm1, xmm2/m32 | SSE | Reciprocal Square Root Scalar Single-Precision |
| F3 0F 01 /5 | rstorssp | RSTORSSP m64 | Legacy | Restore Shadow Stack Pointer |
| 9E | sahf | SAHF | Legacy | Store AH into Flags |
| C1 /4 | sal | SAL r/m, imm8 | Legacy | Shift Arithmetic Left |
| C1 /7 | sar | SAR r/m, imm8 | Legacy | Shift Arithmetic Right |
| VEX.LZ.F3.0F38.W0 F7 /r | sarx | SARX r32, r/m32, r32 | VEX | Shift Arithmetic Right Without Affecting Flags |
| F3 0F 01 EA | saveprevssp | SAVEPREVSSP | Legacy | Save Previous Shadow Stack Pointer |
| 19 | sbb | SBB r/m, r | Legacy | Subtract with Borrow |
| AE | scas | SCASB | Legacy | Scan String |
| AF | scasd | SCASD | Legacy | Scan String Doubleword |
| REX.W + AF | scasq | SCASQ | Legacy | Scan String Quadword |
| AF | scasw | SCASW | Legacy | Scan String Word |
| F3 0F C7 11:110:bbb | senduipi | SENDUIPI r64 | Legacy | Send User Inter-Processor Interrupt |
| NP 0F 01 E8 | serialize | SERIALIZE | Legacy | Serialize Instruction Execution |
| 0F 97 | seta | SETA r/m8 | Legacy | Set Byte on Above |
| 0F 93 | setae | SETAE r/m8 | Legacy | Set Byte on Above or Equal |
| 0F 92 | setb | SETB r/m8 | Legacy | Set Byte on Below |
| 0F 96 | setbe | SETBE r/m8 | Legacy | Set Byte on Below or Equal |
| 0F 90 | setcc | SETcc r/m8 | Legacy | Set Byte on Condition |
| 0F 9F | setg | SETG r/m8 | Legacy | Set Byte on Greater |
| 0F 9D | setge | SETGE r/m8 | Legacy | Set Byte on Greater or Equal |
| 0F 9C | setl | SETL r/m8 | Legacy | Set Byte on Less |
| 0F 9E | setle | SETLE r/m8 | Legacy | Set Byte on Less or Equal |
| 0F 91 | setno | SETNO r/m8 | Legacy | Set Byte on Not Overflow |
| 0F 9B | setnp | SETNP r/m8 | Legacy | Set Byte on Not Parity |
| 0F 99 | setns | SETNS r/m8 | Legacy | Set Byte on Not Sign |
| 0F 95 | setnz | SETNZ r/m8 | Legacy | Set Byte on Not Zero |