# Arithmetic instructions in 8086 microprocessor

Arithmetic Instructions are the instructions which perform basic arithmetic operations such as addition, subtraction and a few more. Unlike in 8085 microprocessor, in 8086 microprocessor the destination operand need not be the accumulator.

Following is the table showing the list of arithmetic instructions:

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 |

Here D stands for destination and S stands for source.

D and S can either be register, data or memory address.

## Recommended Posts:

- Logical instructions in 8086 microprocessor
- Data transfer instructions in 8086 microprocessor
- String manipulation instructions in 8086 microprocessor
- Process control instructions in 8086 microprocessor
- Program execution transfer instructions in 8086 microprocessor
- Arithmetic instructions in 8085 microprocessor
- Logical instructions in 8085 microprocessor
- Branching instructions in 8085 microprocessor
- Data transfer instructions in 8085 microprocessor
- 8086 program to transfer a block of 4 bytes by using string instructions
- Interrupts in 8086 microprocessor
- Pin diagram of 8086 microprocessor
- Differences between 8085 and 8086 microprocessor
- Flag register of 8086 microprocessor
- Memory Segmentation in 8086 Microprocessor

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.