x86 architecture
1 byte opcodes




xxh  
x0h
 
x1h x2h x3h x4h x5h x6h x7h
 
0xh
 
ADD
Eb,Gb
ADD
Ev,Gv
ADD
Gb,Eb
ADD
Gv,Ev
ADD
AL,Ib
ADD
rAX,Iz
PUSHI64
ES
POPI64
ES
 
1xh
 
ADC
Eb,Gb
ADC
Ev,Gv
ADC
Gb,Eb
ADC
Gv,Ev
ADC
AL,Ib
ADC
rAX,Iz
PUSHI64
SS
POPI64
SS
 
2xh
 
AND
Eb,Gb
AND
Ev,Gv
AND
Gb,Eb
AND
Gv,Ev
AND
AL,Ib
AND
rAx,Iz
ES: DAAI64
 
3xh
 
XOR
Eb,Gb
XOR
Ev,Gv
XOR
Gb,Eb
XOR
Gv,Ev
XOR
AL,Ib
XOR
rAX,Iz
SS: AAAI64
 
4xh
 
INCI64 eAX INCI64 eCX INCI64 eDX INCI64 eBX INCI64 eSP INCI64 eBP INCI64 eSI INCI64 eDI
REX
 
5xh
 
PUSHD64
rAX / r8
PUSHD64
rCX / r9
PUSHD64
rDX / r10
PUSHD64
rBX / r11
PUSHD64
rSP / r12
PUSHD64
rBP / r13
PUSHD64
rSI / r14
PUSHD64
rDI / r15
 
6xh
 
PUSHAI64
PUSHADI64
(80186+)
POPAI64
POPADI64
(80186+)
BOUNDI64 Gv,Ma
(80186+)
ARPLI64 Ew,Gw
(80286+)
FS:
(80386+)
Hint Alt Taken
for Jcc (P4)
GS:
(80386+)
OPSIZE:
(80386+)
ADSIZE:
(80386+)
L1OM MVEX EVEX MOVSXD Gv,Ed
(PM64)
 
7xh
 
JODf64
Jb
JNODf64
Jb
JBDf64
Jb
JNBDf64
Jb
JZDf64 Jb JNZDf64 Jb JBEDf64
Jb
JNBEDf64
Jb
JKZDv64 vKw,Jbv
(K1OM)
JKNZDv64 vKw,Jbv
(K1OM)
 
8xh
 
group #1
Eb,Ib
group #1
Ev,Iz
group #1*I64
Eb,Ib
group #1
Ev,Ib
TEST
Eb,Gb
TEST
Ev,Gv
XCHG
Eb,Gb
XCHG
Ev,Gv
 
9xh
 
NOP
(PM64 O32: !ZX)
(F3h) PAUSE
(see CPUID)
XCHG
rCX,rAX
r9,rAX
XCHG
rDX,rAX
r10,rAX
XCHG
rBX,rAX
r11,rAX
XCHG
rSP,rAX
r12,rAX
XCHG
rBP,rAX
r13,rAX
XCHG
rSI,rAX
r14,rAX
XCHG
rDI,rAX
r15,rAX
 
Axh
 
MOV
AL,Ov
MOV
rAX,Ov
MOV
Ov,AL
MOV
Ov,rAX
MOVS
Yb,Xb
MOVS
Yv,Xv
CMPS
Yb,Xb
CMPS
Yv,Xv
 
Bxh
 
MOV
AL,Ib
R8B,Ib
MOV
CL,Ib
R9B,Ib
MOV
DL,Ib
R10B,Ib
MOV
BL,Ib
R11B,Ib
MOV
AH,Ib
R12B,Ib
MOV
CH,Ib
R13B,Ib
MOV
DH,Ib
R14B,Ib
MOV
BH,Ib
R15B,Ib
 
Cxh
 
group #2
Eb,Ib

(80186+)
group #2
Ev,Ib

(80186+)
RET nearDf64
Iw
RET nearDf64 LESI64 Gv,Mp (w:v) LDSI64 Gv,Mp (w:v) group #11
Eb,Ib
group #11
Ev,Iz
VEX3 VEX2
 
Dxh
 
group #2
Eb,1
group #2
Ev,1
group #2
Eb,CL
group #2
Ev,CL
AAMI64
Ib
AADI64
Ib
S(ET)ALCI64 XLAT
L1OM
 
Exh
 
LOOPNEDf64
LOOPNZDf64
Jb
LOOPEDf64
LOOPZDf64
Jb
LOOPDf64
Jb
JCXZDf64
JECXDf64
JRCXDf64
Jb
IN
AL,Ib
IN
eAX,Ib
OUT
Ib,AL
OUT
Ib,eAX
 
Fxh
 
LOCK: INT1
(ICEBP)
(80386+)
REPNE:
 
BND: (MPX)
XACQUIRE: (HLE)
REP:
REPE:
 
XRELEASE: (HLE)
HLT CMC group #3
Eb
group #3
Ev

xxh  
x8h
 
x9h xAh xBh xCh xDh xEh xFh
 
0xh
 
OR
Eb,Gb
OR
Ev,Gv
OR
Gb,Eb
OR
Gv,Ev
OR
AL,Ib
OR
rAX,Iz
PUSHI64
CS
POP CS (8086/8088)
#UD (80186/80188)

2 byte opcodes
(80286+)
 
1xh
 
SBB
Eb,Gb
SBB
Ev,Gv
SBB
Gb,Eb
SBB
Gv,Ev
SBB
AL,Ib
SBB
rAX,Iz
PUSHI64
DS
POPI64
DS
 
2xh
 
SUB
Eb,Gb
SUB
Ev,Gv
SUB
Gb,Eb
SUB
Gv,Ev
SUB
AL,Ib
SUB
rAX,Iz
CS:
 
Hint Not Taken
for Jcc (P4)
DASI64
 
3xh
 
CMP
Eb,Gb
CMP
Ev,Gv
CMP
Gb,Eb
CMP
Gv,Ev
CMP
AL,Ib
CMP
rAX,Iz
DS:
CET: (CET)
Hint Taken
for Jcc (P4)
AASI64
 
4xh
 
DECI64 eAX DECI64 eCX DECI64 eDX DECI64 eBX DECI64 eSP DECI64 eBP DECI64 eSI DECI64 eDI
REX
 
5xh
 
POPD64
rAX / r8
POPD64
rCX / r9
POPD64
rDX / r10
POPD64
rBX / r11
POPD64
rSP / r12
POPD64
rBP / r13
POPD64
rSI / r14
POPD64
rDI / r15
 
6xh
 
PUSHD64
Iz
(80186+)
IMUL
Gv,Ev,Iz
(80186+)
PUSHD64
Ib
(80186+)
IMUL
Gv,Ev,Ib
(80186+)
INS
Yb,DX
(80186+)
INS
Yz,DX
(80186+)
OUTS
DX,Xb
(80186+)
OUTS
DX,Xz
(80186+)
 
7xh
 
JSDf64
Jb
JNSDf64
Jb
JPDf64
Jb
JNPDf64
Jb
JLDf64
Jb
JNLDf64
Jb
JLEDf64
Jb
JNLEDf64
Jb
 
8xh
 
MOV
Eb,Gb
MOV
Ev,Gv
MOV
Gb,Eb
MOV
Gv,Ev
MOV Mw,Sw
MOV Rv,Sw
LEA Gv,M
 
MOV Sw,Mw
MOV Sw,Rv
group #1A
 
9xh
 
CBW (8088)
CWDE (80386+)
CDQE (PM64)
CWD (8088)
CDQ (80386+)
CQO (PM64)
CALLI64
Ap (w:z)
WAIT
FWAIT
PUSHFD64
Fv
POPFD64
Fv
SAHF
(LM: if AHF64)
LAHF
(LM: if AHF64)
 
Axh
 
TEST
AL,Ib
TEST
rAX,Iz
STOS
Yb,AL
STOS
Yv,rAX
LODS
AL,Xb
LODS
rAX,Xv
SCAS
Yb,AL
SCAS
Yv,rAX
 
Bxh
 
MOV
rAX,Iv
r8,Iv
MOV
rCX,Iv
r9,Iv
MOV
rDX,Iv
r10,Iv
MOV
rBX,Iv
r11,Iv
MOV
rSP,Iv
r12,Iv
MOV
rBP,Iv
r13,Iv
MOV
rSI,Iv
r14,Iv
MOV
rDI,Iv
r15,Iv
 
Cxh
 
ENTERD64
Iw,Ib
(80186+)
LEAVED64
(80186+)
RET far
Iw
RET far INT3 INT
Ib
INTOI64 IRET
 
Dxh
 
ESC
0
ESC
1
ESC
2
ESC
3
ESC
4
ESC
5
ESC
6
ESC
7
 
Exh
 
CALLDf64
Jz
JMPDf64
Jz
JMPI64
Ap (w:z)
JMPDf64
Jb
IN
AL,DX
IN
eAX,DX
OUT
DX,AL
OUT
DX,eAX
 
Fxh
 
CLC STC CLI STI CLD STD group #4
INC/DEC
group #5
INC/DEC/etc.



On 8086/8088 processors the following behavior was supported instead.

xxh  
x0h
 
x1h x2h x3h x4h x5h x6h x7h
... ...
 
6xh
 
JO*
Jb
JNO*
Jb
JB*
Jb
JNB*
Jb
JZ*
Jb
JNZ*
Jb
JBE*
Jb
JNBE*
Jb
 
7xh
 
JO
Jb
JNO
Jb
JB
Jb
JNB
Jb
JZ
Jb
JNZ
Jb
JBE
Jb
JNBE
Jb
 
8xh
 
group #1
Eb,Ib
group #1
Ew,Iw
group #1*
Eb,Ib
group #1
Ew,Ib
TEST
Eb,Gb
TEST
Ew,Gw
XCHG
Eb,Gb
XCHG
Ew,Gw
... ...
 
Cxh
 
RET* near
Iw
RET* near RET near
Iw
RET near LES Gw,Mp (w:w)
 
LDS Gw,Mp (w:w)
 
group #11
Eb,Ib
group #11
Ew,Iw
LES Gw,(IND:TMP)
 
LDS Gw,(IND:TMP)
 
... ...
 
Fxh
 
LOCK: LOCK:* REPNE: REP:
REPE:
HLT CMC group #3
Eb
group #3
Ew

xxh  
x8h
 
x9h xAh xBh xCh xDh xEh xFh
... ...
 
6xh
 
JS*
Jb
JNS*
Jb
JP*
Jb
JNP*
Jb
JL*
Jb
JNL*
Jb
JLE*
Jb
JNLE*
Jb
 
7xh
 
JS
Jb
JNS
Jb
JP
Jb
JNP
Jb
JL
Jb
JNL
Jb
JLE
Jb
JNLE
Jb
 
8xh
 
MOV
Eb,Gb
MOV
Ew,Gw
MOV
Gb,Eb
MOV
Gw,Ew
MOV Mw,Sw
MOV Rw,Sw
LEA Gv,M
 
MOV Sw,Mw
MOV Sw,Rw
group #1A
LEA Gv,IND
 
... ...
 
Cxh
 
RET* far
Iw
RET* far RET far
Iw
RET far INT3 INT
Ib
INTO IRET
... ...
 
Fxh
 
CLC STC CLI STI CLD STD group #4
INC/DEC
group #5
INC/DEC/etc.



note: The opcodes marked with * are aliases to other opcodes.



main page