8086
Table 2. Instruction Set Summary
Mnemonic and
Description
Instruction Code
DATA TRANSFER |
|
|
|
|
MOV e Move: | 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 |
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 e 1 |
|
|
|
|
|
Immediate to Register | 1 0 1 1 w reg | data | data if w e 1 |
|
|
|
|
|
|
Memory to Accumulator | 1 0 1 0 0 0 0 w |
| ||
|
|
|
|
|
Accumulator to Memory | 1 0 1 0 0 0 1 w |
| ||
|
|
|
|
|
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 e 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 e 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 e 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 e Input from: |
|
|
|
|
Fixed Port | 1 1 1 0 0 1 0 w | port |
|
|
|
|
|
|
|
Variable Port | 1 1 1 0 1 1 0 w |
|
|
|
OUT e Output to: |
|
|
|
|
Fixed Port | 1 1 1 0 0 1 1 w | port |
|
|
|
|
|
|
|
Variable Port | 1 1 1 0 1 1 1 w |
|
|
|
XLAT e Translate Byte to AL |
|
|
|
|
1 1 0 1 0 1 1 1 |
|
|
| |
LEA e Load EA to Register | 1 0 0 0 1 1 0 1 | mod reg r/m |
|
|
LDS e Load Pointer to DS | 1 1 0 0 0 1 0 1 | mod reg r/m |
|
|
LES e Load Pointer to ES | 1 1 0 0 0 1 0 0 | mod reg r/m |
|
|
LAHF e Load AH with Flags | 1 0 0 1 1 1 1 1 |
|
|
|
SAHF e Store AH into Flags | 1 0 0 1 1 1 1 0 |
|
|
|
PUSHF e Push Flags | 1 0 0 1 1 1 0 0 |
|
|
|
POPF e Pop Flags | 1 0 0 1 1 1 0 1 |
|
|
|
Mnemonics ' Intel, 1978
26