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.
|