算术指令是执行基本算术运算(例如加法,减法等)的指令。与8085微处理器不同,在8086微处理器中,目标操作数不必是累加器。
下表显示了算术指令列表:
OPCODE | OPERAND | EXPLANATION | EXAMPLE |
---|---|---|---|
ADD | D, S | D = D + S | ADD AX, [2050] |
ADC | D, S | D = D + S + prev. carry | ADC AX, BX |
SUB | D, S | D = D – S | SUB AX, [SI] |
SBB | D, S | D = D – S – prev. carry | SBB [2050], 0050 |
MUL | 8-bit register | AX = AL * 8-bit reg. | MUL BH |
MUL | 16-bit register | DX AX = AX * 16-bit reg. | MUL CX |
IMUL | 8 or 16 bit register | performs signed multiplication | IMUL CX |
DIV | 8-bit register | AX = AX / 8-bit reg. ; AL = quotient ; AH = remainder | DIV BL |
DIV | 16-bit register | DX AX / 16-bit reg. ; AX = quotient ; DX = remainder | DIV CX |
IDIV | 8 or 16 bit register | performs signed division | IDIV BL |
INC | D | D = D + 1 | INC AX |
DEC | D | D = D – 1 | DEC [2050] |
CBW | none | converts signed byte to word | CBW |
CWD | none | converts signed byte to double word | CWD |
NEG | D | D = 2’s compliment of D | NEG AL |
DAA | none | decimal adjust accumulator | DAA |
DAS | none | decimal adjust accumulator after subtraction | DAS |
AAA | none | ASCII adjust accumulator after addition | AAA |
AAS | none | ASCII adjust accumulator after subtraction | AAS |
AAM | none | ASCII adjust accumulator after multiplication | AAM |
AAD | none | ASCII adjust accumulator after division | AAD |
D代表目的地,S代表来源。
D和S可以是寄存器,数据或存储器地址。