8088
8086/8088 Instruction Set Summary
Mnemonic and
Description
Instruction Code
DATA TRANSFER
e
MOV
Move:
7 6 5 4 3 2 1 0
1 0 0 0 1 0 d w
1 1 0 0 0 1 1 w
1 0 1 1 w reg
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
Register/Memory to/from Register
Immediate to Register/Memory
Immediate to Register
mod reg r/m
mod 0 0 0 r/m
data
e
1
data
data if w
e
data if w
1
Memory to Accumulator
1 0 1 0 0 0 0 w
1 0 1 0 0 0 1 w
1 0 0 0 1 1 1 0
1 0 0 0 1 1 0 0
addr-low
addr-high
addr-high
Accumulator to Memory
addr-low
Register/Memory to Segment Register
Segment Register to Register/Memory
mod 0 reg r/m
mod 0 reg r/m
e
PUSH
Push:
Register/Memory
Register
1 1 1 1 1 1 1 1
0 1 0 1 0 reg
0 0 0 reg 1 1 0
mod 1 1 0 r/m
Segment Register
e
POP
Pop:
Register/Memory
Register
1 0 0 0 1 1 1 1
0 1 0 1 1 reg
0 0 0 reg 1 1 1
mod 0 0 0 r/m
Segment Register
e
XCHG
Exchange:
Register/Memory with Register
Register with Accumulator
1 0 0 0 0 1 1 w
1 0 0 1 0 reg
mod reg r/m
e
IN
Input from:
Fixed Port
1 1 1 0 0 1 0 w
1 1 1 0 1 1 0 w
port
Variable Port
e
OUT
Output to:
Fixed Port
1 1 1 0 0 1 1 w
1 1 1 0 1 1 1 w
1 1 0 1 0 1 1 1
1 0 0 0 1 1 0 1
1 1 0 0 0 1 0 1
1 1 0 0 0 1 0 0
1 0 0 1 1 1 1 1
1 0 0 1 1 1 1 0
1 0 0 1 1 1 0 0
1 0 0 1 1 1 0 1
port
Variable Port
e
XLAT
Translate Byte to AL
e
LEA
LDS
LES
Load EA to Register
Load Pointer to DS
Load Pointer to ES
mod reg r/m
mod reg r/m
mod reg r/m
e
e
e
LAHF
SAHF
Load AH with Flags
Store AH into Flags
e
e
PUSHF
Push Flags
Pop Flags
e
POPF
26