8086 Instruction Sets
8086 Instruction Sets
8086 Instruction Sets
Operands
ADC
ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADD
ADD
AND
CALL
CALL
CLD
CMP
CMP
CMP
CMP
CMP
CMP
CMP
CMP
CMPSB
CMPW
DEC
DEC
DEC
DIV
DIV
HLT
IDIV
IDIV
IMUL
IMUL
IN
IN
IN
IN
INC
INC
INC
IRET
JMP
JMP
JZ
JNE
JB
JNB
JS
JNS
JO
JNO
JPE
JPO
JL
JNL
JLE
JNLE
JBE
JNBE
see ADD
r/m8, reg8
r/m16, reg16
8086
reg8, r/m8
reg16, r/m16
AL, imm8
AX, imm16
r/m8, imm8
r/m16, imm16
r/m16, imm8
see ADD
32-bit displacement
16-bit displacement
JCXZ
LDS
LES
LODSB
LODSW
LOOP
LOOPE
LOOPNE
LOOPNZ
8-bit relative
reg16, mem32
reg16, mem32
AL = DS:[SI]
AX = DS:[SI]
8-bit relative
8-bit relative
8-bit relative
8-bit relative
AL, reg8
AX, reg16
reg8, imm8
reg16, imm16
reg8, reg8
reg16, reg16
AL, imm8
AX, imm16
ES:[DI]==DS:[SI]
ES:[DI]==DS:[SI]
r/m8
r/m16
reg16
r/m8
r/m16
r/m8
r/m16
r/m8
r/m16
AL, addr8
AX, addr8
AL, port[DX]
AX, port[DX]
r/m8
r/m16
reg16
48-bit POP
32-bit displacement
16-bit displacement
8-bit relative
8-bit relative
8-bit relative
8-bit relative
8-bit relative
8-bit relative
8-bit relative
8-bit relative
8-bit relative
8-bit relative
8-bit relative
8-bit relative
8-bit relative
8-bit relative
8-bit relative
8-bit relative
Opcode
ADD opcode + $10
$00
$01
Instruction
$02Sets
$03
$04
$05
$80
$81
$83
ADD opcode + $20
$9A
$E8
$FC
$3A
$3B
$80
$83
$3A
$3B
$3C
$3D
$A6
$A7
$FE, xx001xxx (ModR/M byte)
$FF, xx001xxx (ModR/M byte)
$48 + reg16 code
$F6, xx110xxx (ModR/M byte)
$F7, xx110xxx (ModR/M byte)
$F4
$F6, xx111xxx (ModR/M byte)
$F7, xx111xxx (ModR/M byte)
$F6, xx101xxx (ModR/M byte)
$F7, xx101xxx (ModR/M byte)
$E4
$E5
$EC
$ED
$FE, xx000xxx (ModR/M byte)
$FF, xx000xxx (ModR/M byte)
$40 + reg16 code
$CF
$EA
$EB
$74
$75
$72
$73
$78
$79
$70
$71
$7A
$7B
$7C
$7D
$7E
$7F
$76
$77
$E3
$C4
$C5
$AC
$AD
$E2
$E1
$E0
$E0
= AL = 0, CL = 1, DL = 2, BL = 3, AH = 4, CH = 5, DH = 6, BH = 7
reg16 = AX = 0, CX = 1, DX = 2, BX = 3, SP = 4, BP = 5, SI = 6, DI = 7
sreg
= ES = 0, CS = 1, SS = 2, DS = 3