Home »
Embedded Systems
Add Numbers in an Array in 8086 Microprocessor
In this tutorial, we will learn how to add numbers in an array in 8086 Microprocessor?
By Deepanshi Mittal Last updated : May 22, 2023
Problem Statement
Write an assembly language program to Add Numbers in an Array in 8086 Microprocessor.
Assumption: Let the size of the array is stored at memory location 2050 and the base address of the array is 2051. The sum will be stored at memory location 3050 and carry will be stored at location 3051.
Algorithm
- Load the base address of the array in HL register pair.
- Size of the array is used as a counter.
- Initialize accumulator to 00.
- Add content of accumulator with the content stored at memory location given in HL pair.
- Decrease counter on each addition.
8086 program to add numbers in an array
2000 LDA 2050
2003 MOV B,A
2004 LXI H,2051
2007 MVI A,00
2009 MVI C,00
200B ADD M
200C INR M
200D JNC 2011
2010 INR C
2011 DCR B
2012 JNZ 200B
2015 STA 3050
2018 MOV A,C
2019 STA 3051
201C HLT
Explanation
- LDA 2050: load accumulator with content of location 2050
- MOV B, A: copy contents of accumulator to register B
- LXI H, 2051: store 20 to H register and 51 to L register
- MVI A, 00: store 00 to accumulator
- MVI C, 00: store 00 to register C
- ADD M: add accumulator with the contents of memory location given in HL register pair
- INR M: increase M by 1
- JNC 2011: if not carry, jump to location 2011 otherwise to the location given in PC
- INR C: increase content of register C by 1
- DCR B: decrease content of register B by 1
- JNZ 200B: if not zero, jump to location 200B otherwise to the location given in PC
- STA 3050: store contents of accumulator to memory location 3050
- MOV A, C: copy contents of register C to accumulator
- STA 3051: store contents of accumulator to memory location 3051
- HLT: terminates the program