8086
Table 2. Instruction Set Summary
Mnemonic and
Instruction Code
Description
DATA TRANSFER
MOV
e
Move: 76543210 76543210 76543210 76543210
Register/Memory to/from Register 100010dw mod reg r/m
Immediate to Register/Memory 1100011w mod000r/m data data if w
e
1
Immediate to Register 1011wreg data data if w
e
1
Memory to Accumulator 1010000w addr-low addr-high
Accumulator to Memory 1010001w addr-low addr-high
Register/Memory to Segment Register 10001110 mod0regr/m
Segment Register to Register/Memory 10001100 mod0regr/m
PUSH
e
Push:
Register/Memory 11111111 mod110r/m
Register 01010reg
Segment Register 000reg110
POP
e
Pop:
Register/Memory 10001111 mod000r/m
Register 01011reg
Segment Register 000reg111
XCHG
e
Exchange:
Register/Memory with Register 1000011w modregr/m
Register with Accumulator 10010reg
IN
e
Input from:
Fixed Port 1110010w port
Variable Port 1110110w
OUT
e
Output to:
Fixed Port 1110011w port
Variable Port 1110111w
XLAT
e
Translate Byte to AL 11010111
LEA
e
Load EA to Register 10001101 modregr/m
LDS
e
Load Pointer to DS 11000101 modregr/m
LES
e
Load Pointer to ES 11000100 modregr/m
LAHF
e
Load AH with Flags 10011111
SAHF
e
Store AH into Flags 10011110
PUSHF
e
Push Flags 10011100
POPF
e
Pop Flags 10011101
Mnemonics
©
Intel, 1978
26