
3-171
Instruction Set Summary
MNEMONIC AND DESCRIPTION
INSTRUCTION CODE
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
DATA TRANSFER
MOV = MOVE:
Register/Memory to/from Register
1 0 0 0 1 0 d w
mod reg r/m
Immediate to Register/Memory
1 1 0 0 0 1 1 w
mod 0 0 0 r/m
data
data if w 1
Immediate to Register
1 0 1 1 w reg
data
data if w 1
Memory to Accumulator
1 0 1 0 0 0 0 w
addr-low
addr-high
Accumulator to Memory
1 0 1 0 0 0 1 w
addr-low
addr-high
Register/Memory to Segment Register
1 0 0 0 1 1 1 0
mod 0 reg r/m
Segment Register to Register/Memory
1 0 0 0 1 1 0 0
mod 0 reg r/m
PUSH = Push:
Register/Memory
1 1 1 1 1 1 1 1
mod 1 1 0 r/m
Register
0 1 0 1 0 reg
Segment Register
0 0 0 reg 1 1 0
POP = Pop:
Register/Memory
1 0 0 0 1 1 1 1
mod 0 0 0 r/m
Register
0 1 0 1 1 reg
Segment Register
0 0 0 reg 1 1 1
XCHG = Exchange:
Register/Memory with Register
1 0 0 0 0 1 1 w
mod reg r/m
Register with Accumulator
1 0 0 1 0 reg
IN = Input from:
Fixed Port
1 1 1 0 0 1 0 w
port
Variable Port
1 1 1 0 1 1 0 w
OUT = Output to:
Fixed Port
1 1 1 0 0 1 1 w
port
Variable Port
1 1 1 0 1 1 1 w
XLAT =
Translate Byte to AL
1 1 0 1 0 1 1 1
LEA =
Load EA to Register2
1 0 0 0 1 1 0 1
mod reg r/m
LDS =
Load Pointer to DS
1 1 0 0 0 1 0 1
mod reg r/m
LES =
Load Pointer to ES
1 1 0 0 0 1 0 0
mod reg r/m
LAHF =
Load AH with Flags
1 0 0 1 1 1 1 1
SAHF =
Store AH into Flags
1 0 0 1 1 1 1 0
PUSHF =
Push Flags
1 0 0 1 1 1 0 0
POPF =
Pop Flags
1 0 0 1 1 1 0 1
ARITHMETIC
ADD = Add:
Register/Memory with Register to Either
0 0 0 0 0 0 d w
mod reg r/m
Immediate to Register/Memory
1 0 0 0 0 0 s w
mod 0 0 0 r/m
data
data if s:w = 01
Immediate to Accumulator
0 0 0 0 0 1 0 w
data
data if w = 1
ADC = Add with Carry:
Register/Memory with Register to Either
0 0 0 1 0 0 d w
mod reg r/m
80C86