Home »
Embedded Systems
Find Sum of Digits of an 8-bit Number | 8086
In this tutorial, we will learn how to find sum of digits of an 8-bit number in 8086 Microprocessor?
By Ayush Sharma Last updated : May 22, 2023
Problem Statement
Write an assembly language program in 8086 microprocessor to find sum of digit of an 8 bits number using 8 bits operation.
Assume 8 bit number is stored at memory location 2050.
Assumptions: Addresses of input data and output data are 2050 and 2051 respectively.
Algorithm
- Load contents of memory location 2050 in register AL
- Copy content of register AL to register AH
- Assign 0004 to CX Register Pair
- Do AND operation on content of AL with 0F and store result in AL
- Rotate the contents of AH by executing ROL instruction using CX
- Do AND operation on content of AH with 0F and store result in AH
- Add AL and AH content and store result in AL
- Store the content of AL in memory location 2051
8086 program to find sum of digits of 8-bit number
Mnemonics |
Comments |
MOV AL, [2050] |
AL←[2050] |
MOV AH, AL |
AH←AL |
MOV CX, 0004 |
CX ← 0004 |
AND AL, 0F |
AL ← AL & 0F |
ROL AH, CX |
Rotate AH content left by 4 bits(value of CX) |
AND AH, 0F |
AH ← AH & 0F |
ADD AL, AH |
AL←AL+AH |
MOV [2051], AL |
[2051]←AL |
HLT |
Stop Execution |
Explanation
- MOV AL, [2050]: loads contents of memory location 2050 in AL
- MOV AH, AL: copy content of register AL to register AH
- MOV CX, 0004: assign 0004 to CX register pair
- AND AL, 0F: does AND operation on content of AL with 0F and store result in AL
- ROL AH, CX: rotate the content of AH register left by 4 bits i.e. value of CX register pair
- AND AH, 0F: does AND operation on content of AH with 0F and store result in AH
- ADD AL, AH: add AL and AH content and store result in AL
- MOV [2051], AL: stores the content of AL in 2051 memory address
- HLT: stops executing the program