8085 program to count the number of ones in contents of register B

Problem – Write an assembly language program to count the number of ones in contents of register B and store the result at memory location 3050.

Example –

Algorithm –

  • Convert the decimal number in Accumulator to its binary equivalent
  • Rotate the digits of the binary number right without carry
  • Apply a loop till count is not zero to change the values of D register and count
  • Copy the value of D register to accumulator and store the result

Program –



MEMORY ADDRESS MNEMONICS COMMENTS
2000 MVI B 75 B ← 75
2002 MVI C 08 C ← 75
2004 MVI D 00 D ← 00
2006 MOV A, B A ← B
2007 RRC Rotate right without carry
2008 JNC 200C Jump if Not Carry
200B INR D D ← D+1
200C DCR C C ← C-1
200D JNZ 2007 Jump if Not Zero
2010 MOV A, D A ← D
2011 STA 3050 A → 3050
2014 HLT Stops execution

Explanation –

  1. MVI B 75 moves 75 decimal number into B register
  2. MVI C 08 moves 08 decimal number into C register, which is taken as counter as the number is of 8 bites
  3. MVI D 00 moves 00 number into d register
  4. MOV A, B moves the contents of B register into A (accumulator) register
  5. RRC rotates the contents of A (which is 75 with binary equivalent 01110101) right

  6. JNC 200C jumps to 200C address and perform the instructions written there if the carry flag is not zero
  7. INR D increases the value of D register by adding one to its contents
  8. DCR C decreases the value of C register by subtracting one from its contents
  9. JNZ 2007 jumps to 2007 address and perform the instructions written there if the zero flag is not zero
  10. MOV A, D moves the contents of B register into A register
  11. STA 3050 store the contents of A at 3050 memory location
  12. HLT stops execution

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

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.