Find addition of two 8-bit BCD numbers | 8086 Microprocessor

In this tutorial, we will learn how to find the addition of two 8-bit BCD numbers on 8086 Microprocessor? By Ayush Sharma Last updated : May 22, 2023

Problem Statement

Write a program in 8086 microprocessor to find out the addition of two 8-bit BCD numbers, where numbers are stored from starting memory address 2000 : 500 and store the result into memory address 2000 : 600 and carry at 2000 : 601.

Algorithm

  1. Load data from offset 500 to register AL (first number)
  2. Load data from offset 501 to register BL (second number)
  3. Add these two numbers (contents of register AL and register BL)
  4. Apply DAA instruction (decimal adjust)
  5. Store the result (content of register AL) to offset 600
  6. Set register AL to 00
  7. Add contents of register AL to itself with carry
  8. Store the result (content of register AL) to offset 601
  9. Stop

Program:

ADDRESSMNEMONICSCOMMENTS
400MOV AL, [500]AL ← [500]
404MOV BL, [501]BL ← [501]
408ADD AL, BLAL ← AL+BL
40ADAADECIMAL ADJUST AL
40BMOV [600], ALAL → [600]
40FMOV AL, 00AL ← 00
411ADC AL, ALAL ← AL+AL+cy(prev)
413MOV [601], ALAL → [601]
417HLTEND

Explanation

  1. MOV AL, [500]: load data from offset 500 to register AL
  2. MOV BL, [501]: load data from offset 501 to register BL
  3. ADD AL, BL: ADD contents of registers AL AND BL
  4. DAA: decimal adjust AL
  5. MOV [600], AL: store data from register AL to offset 600
  6. MOV AL, 00: set value of register AL to 00
  7. ADC AL, AL: add contents of register AL to AL with carry
  8. MOV [601], AL: store data from register AL to offset 601
  9. HLT: stop




Comments and Discussions!

Load comments ↻






Copyright © 2024 www.includehelp.com. All rights reserved.