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
 !REX2 
INCI64 eAX  INCI64 eCX INCI64 eDX INCI64 eBX INCI64 eSP INCI64 eBP INCI64 eSI INCI64 eDI
REX
 
5xh
 
PUSHD64
rAX / r8 / r16 / r24
PUSHD64
rCX / r9 / r17 / r25
PUSHD64
rDX / r10 / r18 / r26
PUSHD64
rBX / r11 / r19 / r27
PUSHD64
rSP / r12 / r20 / r28
PUSHD64
rBP / r13 / r21 / r29
PUSHD64
rSI / r14 / r22 / r30
PUSHD64
rDI / r15 / r23 / r31
REX2.W1 PUSHPF64 Rq
 
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
 !REX2 
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
XCHG   r9,rAX
XCHG r17,rAX
XCHG r25,rAX
XCHG rDX,rAX
XCHG r10,rAX
XCHG r18,rAX
XCHG r26,rAX
XCHG rBX,rAX
XCHG r11,rAX
XCHG r19,rAX
XCHG r27,rAX
XCHG rSP,rAX
XCHG r12,rAX
XCHG r20,rAX
XCHG r28,rAX
XCHG rBP,rAX
XCHG r13,rAX
XCHG r21,rAX
XCHG r29,rAX
XCHG rSI,rAX
XCHG r14,rAX
XCHG r22,rAX
XCHG r30,rAX
XCHG rDI,rAX
XCHG r15,rAX
XCHG r23,rAX
XCHG r31,rAX
 
Axh
 !REX2 
MOV
AL,Ov
MOV
rAX,Ov
MOV
Ov,AL
MOV
Ov,rAX
MOVS
Yb,Xb
MOVS
Yv,Xv
CMPS
Yb,Xb
CMPS
Yv,Xv
REX2.W0
JMPABS Aq
 
Bxh
 
(!REX) MOV AL,Ib
 (REX) MOV AL,Ib
MOV   R8B,Ib
MOV R16B,Ib
MOV R24B,Ib
(!REX) MOV CL,Ib
 (REX) MOV CL,Ib
MOV   R9B,Ib
MOV R17B,Ib
MOV R25B,Ib
(!REX) MOV DL,Ib
 (REX) MOV DL,Ib
MOV R10B,Ib
MOV R18B,Ib
MOV R26B,Ib
(!REX) MOV BL,Ib
 (REX) MOV BL,Ib
MOV R11B,Ib
MOV R19B,Ib
MOV R27B,Ib
(!REX) MOV AH,Ib
(REX) MOV SPL,Ib
MOV R12B,Ib

MOV R20B,Ib
MOV R28B,Ib
(!REX) MOV CH,Ib
(REX) MOV BPL,Ib
MOV R13B,Ib

MOV R21B,Ib
MOV R29B,Ib
(!REX) MOV DH,Ib
(REX)  MOV SIL,Ib
MOV R14B,Ib

MOV R22B,Ib
MOV R30B,Ib
(!REX) MOV BH,Ib
(REX)  MOV DIL,Ib
MOV R15B,Ib

MOV R23B,Ib
MOV R31B,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
reserved REX2 L1OM
 
Exh
 !REX2 
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
 !REX2 
DECI64 eAX  DECI64 eCX DECI64 eDX DECI64 eBX DECI64 eSP DECI64 eBP DECI64 eSI DECI64 eDI
REX
 
5xh
 
POPD64
rAX / r8 / r16 / r24
POPD64
rCX / r9 / r17 / r25
POPD64
rDX / r10 / r18 / r26
POPD64
rBX / r11 / r19 / r27
POPD64
rSP / r12 / r20 / r28
POPD64
rBP / r13 / r21 / r29
POPD64
rSI / r14 / r22 / r30
POPD64
rDI / r15 / r23 / r31
REX2.W1 POPPF64 Rq
 
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
 !REX2 
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
 !REX2 
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
MOV   r8,Iv
MOV r16,Iv
MOV r24,Iv
MOV rCX,Iv
MOV   r9,Iv
MOV r17,Iv
MOV r25,Iv
MOV rDX,Iv
MOV r10,Iv
MOV r18,Iv
MOV r26,Iv
MOV rBX,Iv
MOV r11,Iv
MOV r19,Iv
MOV r27,Iv
MOV rSP,Iv
MOV r12,Iv
MOV r20,Iv
MOV r28,Iv
MOV rBP,Iv
MOV r13,Iv
MOV r21,Iv
MOV r29,Iv
MOV rSI,Iv
MOV r14,Iv
MOV r22,Iv
MOV r30,Iv
MOV rDI,Iv
MOV r15,Iv
MOV r23,Iv
MOV r31,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
 !REX2 
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 
(F0h) CLX (REX32)
 
 STI 
(F0h) STX (REX32)
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

© 1996-2024 by Christian Ludloff. All rights reserved. Use at your own risk.