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.

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the **CS Theory Course** at a student-friendly price and become industry ready.