Open In App

8086 program to find sum of digits of 8 bit number

Last Updated : 02 Jul, 2018
Improve
Improve
Like Article
Like
Save
Share
Report

Problem – Write an assembly language program in 8086 microprocessor to find sum of digit of an 8 bit number using 8 bit operation.

Example – Assume 8 bit number is stored at memory location 2050.

Assumptions – Addresses of input data and output data are 2050 and 2051 respectively.

Algorithm –

  1. Load contents of memory location 2050 in register AL
  2. Copy content of register AL to register AH
  3. Assign 0004 to CX Register Pair
  4. Do AND operation on content of AL with 0F and store result in AL
  5. Rotate the contents of AH by executing ROL instruction using CX
  6. Do AND operation on content of AH with 0F and store result in AH
  7. Add AL and AH content and store result in AL
  8. Store the content of AL in memory location 2051

Program –

Memory Address Mnemonics Comments
400 MOV AL, [2050] AL<-[2050]
404 MOV AH, AL AH<-AL
406 MOV CX, 0004 CX <- 0004
409 AND AL, 0F AL <- AL & 0F
40B ROL AH, CX Rotate AH content left by 4 bits(value of CX)
40D AND AH, 0F AH <- AH & 0F
40F ADD AL, AH AL<-AL+AH
411 MOV [2051], AL [2051]<-AL
415 HLT Stop Execution

Explanation –

  1. MOV AL, [2050]: loads contents of memory location 2050 in AL
  2. MOV AH, AL: copy content of register AL to register AH
  3. MOV CX, 0004: assign 0004 to CX register pair
  4. AND AL, 0F: does AND operation on content of AL with 0F and store result in AL
  5. ROL AH, CX: rotate the content of AH register left by 4 bits i.e. value of CX register pair
  6. AND AH, 0F: does AND operation on content of AH with 0F and store result in AH
  7. ADD AL, AH: add AL and AH content and store result in AL
  8. MOV [2051], AL: stores the content of AL in 2051 memory address
  9. HLT: stops executing the program

Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads