x86 architecture opcode groups
note: A leading bold V indicates that the instruction can be VEX-encoded, in which case it may have additional operands.
note: A leading bold ! indicates that the 256-bit version was only introduced with AVX2 and that it can only be VEX-encoded.
mod R/M |
|
xx000xxx |
xx001xxx |
xx010xxx |
xx011xxx |
xx100xxx |
xx101xxx |
xx110xxx |
xx111xxx |
group #1 (80h) |
|
ADD Eb,Ib |
OR Eb,Ib |
ADC Eb,Ib |
SBB Eb,Ib |
AND Eb,Ib |
SUB Eb,Ib |
XOR Eb,Ib |
CMP Eb,Ib |
group #1 (81h) |
|
ADD Ev,Iz |
OR Ev,Iz |
ADC Ev,Iz |
SBB Ev,Iz |
AND Ev,Iz |
SUB Ev,Iz |
XOR Ev,Iz |
CMP Ev,Iz |
group #1 (82h) |
|
ADD* Eb,Ib |
OR* Eb,Ib |
ADC* Eb,Ib |
SBB* Eb,Ib |
AND* Eb,Ib |
SUB* Eb,Ib |
XOR* Eb,Ib |
CMP* Eb,Ib |
group #1 (83h) |
|
ADD Ev,Ib |
OR Ev,Ib |
ADC Ev,Ib |
SBB Ev,Ib |
AND Ev,Ib |
SUB Ev,Ib |
XOR Ev,Ib |
CMP Ev,Ib |
group #1A (8Fh) |
|
POPD64 Ev |
XOP (000b) XOP (001b) XOP (010b) |
|
|
|
|
|
|
group #2 (C0h) (80186+) |
|
ROL Eb,Ib |
ROR Eb,Ib |
RCL Eb,Ib |
RCR Eb,Ib |
SHL Eb,Ib |
SHR Eb,Ib |
SAL* Eb,Ib |
SAR Eb,Ib |
group #2 (C1h) (80186+) |
|
ROL Ev,Ib |
ROR Ev,Ib |
RCL Ev,Ib |
RCR Ev,Ib |
SHL Ev,Ib |
SHR Ev,Ib |
SAL* Ev,Ib |
SAR Ev,Ib |
group #2 (D0h) |
|
ROL Eb,1 |
ROR Eb,1 |
RCL Eb,1 |
RCR Eb,1 |
SHL Eb,1 |
SHR Eb,1 |
SAL* Eb,1 |
SAR Eb,1 |
group #2 (D1h) |
|
ROL Ev,1 |
ROR Ev,1 |
RCL Ev,1 |
RCR Ev,1 |
SHL Ev,1 |
SHR Ev,1 |
SAL* Ev,1 |
SAR Ev,1 |
group #2 (D2h) |
|
ROL Eb,CL |
ROR Eb,CL |
RCL Eb,CL |
RCR Eb,CL |
SHL Eb,CL |
SHR Eb,CL |
SAL* Eb,CL |
SAR Eb,CL |
group #2 (D3h) |
|
ROL Ev,CL |
ROR Ev,CL |
RCL Ev,CL |
RCR Ev,CL |
SHL Ev,CL |
SHR Ev,CL |
SAL* Ev,CL |
SAR Ev,CL |
group #3 (F6h) |
|
TEST Eb,Ib |
TEST* Eb,Ib |
NOT Eb |
NEG Eb |
MUL Eb |
IMUL Eb |
DIV Eb |
IDIV Eb |
group #3 (F7h) |
|
TEST Ev,Iz |
TEST* Ev,Iz |
NOT Ev |
NEG Ev |
MUL Ev |
IMUL Ev |
DIV Ev |
IDIV Ev |
group #4 (FEh) |
|
INC Eb |
DEC Eb |
|
|
|
|
|
|
group #5 (FFh) |
|
INC Ev |
DEC Ev |
CALLDf64 Ev |
CALL Mp (w:z) (or call gate's y) |
JMPDf64 Ev |
JMP Mp (w:z) (or call gate's y) |
PUSHD64 Ev |
|
group #6 (0Fh,00h) |
|
SLDT Mw |
STR Mw |
LLDT Mw |
LTR Mw |
VERR Mw |
VERW Mw |
JMPE Ev (IA-64) |
|
|
SLDT Rv |
STR Rv |
LLDT Rv |
LTR Rv |
VERR Rv |
VERW Rv |
|
group #7 (0Fh,01h) |
|
SGDTF64 Mp (w:y) |
SIDTF64 Mp (w:y) |
LGDTF64 Mp (w:y) |
LIDTF64 Mp (w:y) |
SMSW Mw |
|
LMSW Mw |
INVLPG M (80486+) |
|
VMCALL (C1h)
VMLAUNCH (C2h)
VMRESUME (C3h)
VMXOFF (C4h)
(see CPUID)
|
MONITOR (C8h)
MWAIT (C9h)
CLAC (CAh)
STAC (CBh)
(see CPUID)
|
XGETBV (D0h)
XSETBV (D1h)
VMFUNC (D4h)
XEND (D5h)
XTEST (D6h)
(see CPUID)
|
VMRUN (D8h)
VMMCALL (D9h)
VMLOAD (DAh)
VMSAVE (DBh)
STGI (DCh)
CLGI (DDh)
SKINIT (DEh)
INVLPGA (DFh)
(see CPUID)
|
SMSW Rv |
|
LMSW Rv |
SWAPGS (F8h)
RDTSCP (F9h)
(see CPUID)
|
group #8 (0Fh,BAh) (80386+) |
|
|
|
|
|
BT Ev,Ib |
BTS Ev,Ib |
BTR Ev,Ib |
BTC Ev,Ib |
group #9 (0Fh,C7h) |
|
|
CMPXCHG8B Mq CMPXCHG16B Mo (see CPUID) |
|
|
|
|
(n/a) VMPTRLD Mq
(66h) VMCLEAR Mq
(F3h) VMXON Mq
(see CPUID)
|
(n/a) VMPTRST Mq
(see CPUID)
|
|
|
|
|
|
|
|
RDRAND Rv (see CPUID) |
RDSEED Rv (see CPUID) |
group #10 (0Fh,B9h) |
|
UD2 |
UD2 |
UD2 |
UD2 |
UD2 |
UD2 |
UD2 |
UD2 |
group #11 (C6h) |
|
MOV Eb,Ib |
|
|
|
|
|
|
XABORT Ib (F8h)
(see CPUID)
|
group #11 (C7h) |
|
MOV Ev,Iz |
|
|
|
|
|
|
XBEGIN Jz (F8h)
(see CPUID)
|
group #12 (0Fh,71h) |
|
|
|
PSRLW Nq,Ib (MMX) (66h) !VPSRLW Hx,Ux,Ib (SSE2) |
|
PSRAW Nq,Ib (MMX) (66h) !VPSRAW Hx,Ux,Ib (SSE2) |
|
PSLLW Nq,Ib (MMX) (66h) !VPSLLW Hx,Ux,Ib (SSE2) |
|
group #13 (0Fh,72h) |
|
|
|
PSRLD Nq,Ib (MMX) (66h) !VPSRLD Hx,Ux,Ib (SSE2) |
|
PSRAD Nq,Ib (MMX) (66h) !VPSRAD Hx,Ux,Ib (SSE2) |
|
PSLLD Nq,Ib (MMX) (66h) !VPSLLD Hx,Ux,Ib (SSE2) |
|
group #13 (MVEX 66h) (0Fh,72h) |
|
|
|
VPSRLD Hz {Kw}, Si32r (Wzt),Ib (W=0) (K1OM) |
|
VPSRAD Hz {Kw}, Si32r (Wzt),Ib (W=0) (K1OM) |
|
VPSLLD Hz {Kw}, Si32r (Wzt),Ib (W=0) (K1OM) |
|
group #14 (0Fh,73h) |
|
|
|
PSRLQ Nq,Ib (MMX) (66h) !VPSRLQ Hx,Ux,Ib (SSE2) |
(66h) !VPSRLDQ Hx,Ux,Ib (SSE2) |
|
|
PSLLQ Nq,Ib (MMX) (66h) !VPSLLQ Hx,Ux,Ib (SSE2) |
(66h) !VPSLLDQ Hx,Ux,Ib (SSE2) |
group #15 (0Fh,AEh) |
|
FXSAVE M (see CPUID) |
FXRSTOR M (see CPUID) |
VLDMXCSR Md (SSE) |
VSTMXCSR Md (SSE) |
XSAVE M (see CPUID) |
XRSTOR M (see CPUID) |
XSAVEOPT M (see CPUID) |
CLFLUSH M (see CPUID) |
|
(F3) RDFSBASE Ry (see CPUID) |
(F3) RDGSBASE Ry (see CPUID) |
(F3) WRFSBASE Ry (see CPUID) |
(F3) WRGSBASE Ry (see CPUID) |
|
LFENCE#r/m (SSE2-MEM) |
MFENCE#r/m (SSE2-MEM) |
SFENCE#r/m (SSE-MEM) |
group #15 (VEX F2h) (0Fh,AEh) |
|
|
|
|
|
|
|
SPFLT Ry (K1OM) |
CLEVICT0 M (K1OM) |
group #15 (MVEX F2h) (0Fh,AEh) |
|
|
|
|
|
|
|
|
CLEVICT0 M (K1OM) |
group #15 (VEX F3h) (0Fh,AEh) |
|
|
|
|
|
|
|
DELAY Ry (K1OM) |
CLEVICT1 M (K1OM) |
group #15 (MVEX F3h) (0Fh,AEh) |
|
|
|
|
|
|
|
|
CLEVICT1 M (K1OM) |
group #16 (0Fh,18h) |
|
PREFETCHNTA M (SSE-MEM) HINT_NOP Rv (P6+) |
PREFETCHT0 M (SSE-MEM) HINT_NOP Rv (P6+) |
PREFETCHT1 M (SSE-MEM) HINT_NOP Rv (P6+) |
PREFETCHT2 M (SSE-MEM) HINT_NOP Rv (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
group #16 (VEX) (0Fh,18h) |
|
VPREFETCHNTA M (K1OM) |
VPREFETCHT0 M (K1OM) |
VPREFETCHT1 M (K1OM) |
VPREFETCHT2 M (K1OM) |
VPREFETCHENTA M (K1OM) |
VPREFETCHET0 M (K1OM) |
VPREFETCHET1 M (K1OM) |
VPREFETCHET2 M (K1OM) |
group #16 (MVEX) (0Fh,18h) |
|
VPREFETCHNTA M (K1OM) |
VPREFETCHT0 M (K1OM) |
VPREFETCHT1 M (K1OM) |
VPREFETCHT2 M (K1OM) |
VPREFETCHENTA M (K1OM) |
VPREFETCHET0 M (K1OM) |
VPREFETCHET1 M (K1OM) |
VPREFETCHET2 M (K1OM) |
group #16 (0Fh,19h) |
|
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
group #16 (0Fh,1Ah) |
|
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
group #16 (0Fh,1Bh) |
|
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
group #16 (0Fh,1Ch) |
|
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
group #16 (0Fh,1Dh) |
|
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
group #16 (0Fh,1Eh) |
|
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
group #16 (0Fh,1Fh) |
|
NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
HINT_NOP E[bv] (P6+) |
group #17 (VEX) (0F 38 F3) |
|
|
BLSRv By,Ey (BMI) |
BLSMSKv By,Ey (BMI) |
BLSIv By,Ey (BMI) |
|
|
|
|
group #18 (MVEX 66) (0F 38 C6) |
|
VGATHER- PF0HINTDPS Uf32 (Mdt.z) {Kw.!0} (W=0) VGATHER- PF0HINTDPD Uf64 (Mqt.z) {Kw.!0} (W=1) (K1OM,VSIB) |
VGATHER- PF0DPS Uf32 (Mdt.z) {Kw.!0} (W=0) (K1OM,VSIB) |
VGATHER- PF1DPS Uf32 (Mdt.z) {Kw.!0} (W=0) (K1OM,VSIB) |
|
VSCATTER- PF0HINTDPS Uf32 (Mdt.z) {Kw.!0} (W=0) VSCATTER- PF0HINTDPD Uf64 (Mqt.z) {Kw.!0} (W=1) (K1OM,VSIB) |
VSCATTER- PF0DPS Uf32 (Mdt.z) {Kw.!0} (W=0) (K1OM,VSIB) |
VSCATTER- PF1DPS Uf32 (Mdt.z) {Kw.!0} (W=0) (K1OM,VSIB) |
|
note: The opcodes marked with * are aliases to other opcodes.
|