Count the Number of 1’s in a Register - Count the Number of 1s in a Register

Count the Number of 1s in a Register

Posted on

Count the Number of 1s in a Register

Write a program in Assembly Language  to Count the Number of 1’s in a Register . Program should load number in register and then should implement some logic for counting Number of 1’s in a Register . 

How our Logic Works for this Problem 

  • We have a word that is stored in AX register.
  • Initialize the counter 1 = 16.
  • Initialize counter 2 = 0 to count the number of 1’s. 

We will rotate the number in AX along with carry by 1 bit to the right. If there is a carry we will increment counter 2. Decrement counter 1. This process with continue till all the bits are checked. The counter 2 will indicate the number of 1’s present in the word. The result of counter 2 is stored in BL. 

Display the result.

 eg. :        AX = 5267

0101

0010

0110

0111

                                                            no  of 1’s = 8

 

Algorithm to Count the Number of 1s in a Register

Step I         : Initialize the data memory.

Step II       :  Load the number in AX register.

Step III      : Initialize count in BL = 00

                          Initialize counter 1 = 16.

Stp IV      :  Rotate contents of register so that  LSB will go in carry.

Step V        :  Check if carry = 1. If not go to step VII.

Step VI      :  Increment count in BL.

Step VII     :  Decrement counter 1.

Step VIII   :  Check if counter 1 = 0. If not go to step IV.

Step IX      :  Display result in BL.

Step X        :  Stop. 

Count+the+Number+of+1%E2%80%99s+in+a+Register - Count the Number of 1s in a Register

 

Program to Count the Number of 1s in a Register

 

 

How to Run this Program 

For Running this program you should have installed Tasm on you computer . If you have not installed Tasm  yet please install from Here .

C:\programs>tasm count1.asm

Turbo Assembler  Version 3.0  Copyright (c) 1988, 1991 Borland International

Assembling file:   count1.asm

Error messages:    None

Warning messages:  None

Passes:            1

Remaining memory:  438k

C:\programs>tlink
count1

Turbo Link  Version 3.0 Copyright (c) 1987, 1990 Borland International

Warning: No stack

C:\programs>count1

0008

Source projectgeek.com