# 8085 program to find sum of digits of 8 bit number

**Problem –** Write an assembly language program in 8085 microprocessor to find sum of digit of an 8 bit number.

**Example –**

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

**Algorithm –**

- Load value stored at memory location 2050 in accumulator A
- Move the value of accumulator A in register B
- Perform masking of nibbles i.e. do
**AND**operation of accumulator A with OF by help of**ANI**instruction. We will get lower nibble value in accumulator A - Move the value of accumulator A in register C
- Move the value of register B in accumulator A
- Reverse the number which is stored in accumulator A by using
**RLC**instruction 4 times and again do masking of nibbles as done in step 3 - Add value of register C in accumulator A
- Store the value of A in memory location 3050

**Program –**

MEMORY ADDRESS | MNEMONICS | COMMENT |
---|---|---|

2000 | LDA 2050 | A <- M[2050] |

2003 | MOV B, A | B <- A |

2004 | ANI 0F | A <- A (AND) 0F |

2006 | MOV C, A | C <- A |

2007 | MOV A, B | A <- B |

2008 | RLC | Rotate left without carry |

2009 | RLC | Rotate left without carry |

200A | RLC | Rotate left without carry |

200B | RLC | Rotate left without carry |

200C | ANI 0F | A <- A (AND) 0F |

200E | ADD C | A <- A + C |

200F | STA 3050 | M[3050] <- A |

2012 | HLT | END |

**Explanation –** Registers used A, B, C

**LDA 2050 –**loads the content of memory location 2050 in accumulator A**MOV B, A –**moves the value of accumulator A in register B**ANI 0F –**performs AND operation in value of accumulator A and 0F**MOV C, A –**moves the value of accumulator A in register C**MOV A, B –**moves the value of register B in accumulator A**RLC –**instruction rotate the value of accumulator A, left by 1 bit. Since it is performed 4 times therefore this will reverse the number i.e swaps the lower order nibble with higher order nibble- Repeat step 3
**ADD C –**add the content of register of C in accumulator A**STA 3050 –**stores value of A in 3050**HLT –**stops executing the program and halts any further execution

## Recommended Posts:

- 8085 program to find square of a 8 bit number
- 8085 program to find 1's and 2's complement of 8-bit number
- 8085 program to find 1’s and 2’s complement of 16-bit number
- 8085 program to find the factorial of a number
- 8085 program to find nth power of a number
- 8085 program to find square root of a number
- 8085 program to find minimum value of digit in the 8 bit number
- 8085 program to find smallest number between two numbers
- 8086 program to find sum of digits of 8 bit number
- 8085 program to find the set bit of accumulator
- 8085 program to find the sum of a series
- 8085 program to find maximum of two 8 bit numbers
- 8085 program to find the sum of series of even numbers
- 8085 program to find the element that appears once
- 8085 program to find larger of two 8 bit numbers

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.