Skip to content
Related Articles

Related Articles

8086 program to find sum of digits of 8 bit number
  • Last Updated : 02 Jul, 2018

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 AddressMnemonicsComments
400MOV AL, [2050]AL<-[2050]
404MOV AH, ALAH<-AL
406MOV CX, 0004CX <- 0004
409AND AL, 0FAL <- AL & 0F
40BROL AH, CXRotate AH content left by 4 bits(value of CX)
40DAND AH, 0FAH <- AH & 0F
40FADD AL, AHAL<-AL+AH
411MOV [2051], AL[2051]<-AL
415HLTStop 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
My Personal Notes arrow_drop_up
Recommended Articles
Page :