Professional Documents
Culture Documents
x86 Opcode Structure and Instruction Overview 0 1 2 3 4 5 6 7 8 9 AB CDE F 0 1 2 3 4 5 6 7 8 9 AB CDE F OR ADD 0 0 SBB SSE{1,2,3} ADC 1 1 SUB AND SSE{1,2} 2 2 MOV CR/DR XOR CMP 3 3 INC DEC CMOV 4 4 PUSH POP SSE{1,2} 5 5 MMX, SSE2 6 6 MMX, SSE{1,2,3}, VMX 7 7 MOV REG 8 8 XCHG EAX 9 9 A MOV EAX A MOV B B SSE{1,2} BSWAP C C MMX, SSE{1,2,3} FPU D D MMX, SSE{1,2} E E MMX, SSE{1,2,3} F F
2nd 2nd 1st 1st ES ES PUSH POP SS SS ES SS TWO CS BYTE PUSH POP DS DS CS DAS AAS
{L,S}LDT {L,S}GDT {L,S}TR {L,S}IDT VER{R,W} {L,S}MSW
LAR
LSL
CLTS
INVD
Prefetch SSE1
WBINVD
UD2
NOP
HINT_NOP
DAA AAA
SEGMENT OVERRIDE
SEGMENT OVERRIDE
DS
WRMSR RDTSC
GETSEC SMX
ARPL JNB
FS JE
GS
OPERAND SIZE
ADDRESS SIZE
INS
OUTS
SEGMENT OVERRIDE
SIZE OVERRIDE
JO
JNO
JB
JNE
JBE
JA
JL
JGE
JLE
JG
Jcc
ADD/ADC/AND/XOR OR/SBB/SUB/CMP
TEST
XCHG
JO
JNO
JB
JNB
JE
JNE
JBE
JA
JS
JNS
JPE
JPO
JL
JG
Jcc SHORT
NOP
PUSHFD POPFD
SETO
SETNO
SETB
SETNB
SETE
SETNE
SETBE
SETA
SETS
SETNS
SETPE
SETPO
SETL
SETGE
SETLE
SETG
SETcc
MOVS
CMPS
LODS
SHLD
SHRD
*FENCE
IMUL
BTR
LFS
LGS
MOVZX
UD
BTC
BSF
BSR
MOVSX
RETN
LES
ENTER
LEAVE
RETF
INT3
CMPXCHG
SHIFT CL
ROL/ROR/RCL/RCR/SHL/SHR/SAL/SAR
LOOPNZ LOOPZ
LOOP
CONDITIONAL LOOP
JECXZ
REPE
JMP SHORT
IN DX
OUT DX
LOCK
EXCLUSIVE ACCESS
ICE BP
REPNE
CONDITIONAL REPETITION
HLT CMC
TEST/NOT/NEG [i]MUL/[i]DIV
STI
CLD
STD
INC DEC
Addressing Modes
mod r/m 000 001 010 011 Base field Index field Scale field 100 101 110 111
16bit
[BX+SI] [BX+DI] [BP+SI] [BP+DI] [SI] [DI] disp16 [BX]
00
32bit
[EAX] [ECX] [EDX] [EBX] SIB disp32 [ESI] [EDI]
11
32bit
[EAX]+disp32 [ECX]+disp32 [EDX]+disp32 [EBX]+disp32 SIB+disp32 [EBP]+disp32 [ESI]+disp32 [EDI]+disp32
Index (3bit) [EAX] [ECX] [EDX] [EBX] none [EBP] [ESI] [EDI]
16bit
[BX+SI]+disp8 [BX+DI]+disp8 [BP+SI]+disp8 [BP+DI]+disp8 [SI]+disp8 [DI]+disp8 [BP]+disp8 [BX]+disp8
16bit
[BX+SI]+disp16 [BX+DI]+disp16 [BP+SI]+disp16 [BP+DI]+disp16 [SI]+disp16 [DI]+disp16 [BP]+disp16 [BX]+disp16
r/m // REG
AL / AX / EAX CL / CX / ECX DL / DX / EDX BL / BX / EBX AH / SP / ESP CH / BP / EBP DH / SI / ESI BH / DI / EDI
ESI EDI
Source: Intel x86 Instruction Set Reference Opcode table presentation inspired by work of Ange Albertini