INTRODUCTION
THE 8088'sPOWERFUL
INSTRUCTION SET
The 8088 has the most powerful instructions of any
The 14 data transfer instructions (Fig.
8088 arithmetic operations (Fig.
| GENERAL PURPOSE |
MOV | Move byte or word |
PUSH | Push word onto stack |
POP | Pop word off stack |
XCHG | Exchange byte or word |
XLAT | Translate byte |
| INPUT/OUTPUT |
IN | Input byte or word |
OUT | Output byte or word |
| ADDRESS OBJECT |
LEA | Load effective address |
LDS | Load pointer using DS |
LES | Load pointer using ES |
| FLAG TRANSFER |
LAHF | Load AH register from flags |
SAHF | Store AH register in flags |
PUSHF | Push flags onto stack |
POPF | Pop flags off stack |
Figure 1-16. Data Transfer Instructions
unpacked decimal numbers. Binary numbers may be
The 8088 provides three groups of bit manip- ulation instructions (Fig.
The bits in bytes or words may be shifted arithmetically or logically by the shift instruc- tions. Up to 255 shifts may be performed according to the value of the count operand coded in the instruction. The count may be specified as the constant "1" or as the con- tents of register eL, allowing the shift count to be a variable supplied during program
| ADDITION |
ADD | Add byte or word |
ADC | Add byte or word with carry |
INC | Increment byte or word by 1 |
AAAASCII adjust for addition
DAA | Decimal adjust for addition |
| SUBTRACTION |
SUB | Subtract byte or word |
SBB | Subtract byte or word with borrow |
DEC | Decrement byte or word by 1 |
NEG | Negate byte or word |
CMP | Compare byte or word |
AAS | ASCII adjust for subtraction |
DAS | Decimal adjust for subtraction |
| MULTIPLICATION |
MUL | Multiply byte or word unsigned |
IMUL | Integer multiply byte or word |
AAM | ASCII adjust for multiply |
| DIVISION |
DIV | Divide byte or word unsigned |
IDIV | Integer divide byte or word |
AAD | ASCII adjust for division |
CBW | Convert byte to word |
CWD | Convert word to doubleword |