Skip to main content

0s and 1s Count in 1 Byte Memory Word

This program will count all the 1s and 0s individualy presents in a 1 byte word. And store the result in individual places in Memory. Suppose, argument byte is stored in memory location 2050H and store the result of 1's count at 2060H memory location and 0's at 2061H

;Initiate 1's Counter
Memory LocationHex CodeLabelMnemonicsComment
3050
3051
3052
3A
50
20
START:LDA 2050H;Load Accumulator with the number stored at location 2050H
3053
3054
06
00
MVI B, 00H;Initiate 0's Counter
3055
3056
0E
00
MVI C, 00H
3057
3058
16
08
MVI D, 08H;Initiate Bit Counter
305907LOOP:RLC;Rotate Accumulator Left with Carry
305A
305B
305C
DA
61
30
JC ONE;If 1 is found count 1
305D04INR B;If 1 is not found it must be 0. So increase 0's Counter
305E
305F
3060
D2
62
30
JNC NEXT;Go to next Bit
30610CONE:INR C;Increase 1's Counter
306215NEXT:DCR D;Decrease the Bit Counter
3063
3064
3065
C2
59
30
JNZ LOOP;If all Bits is not checked execute for next Bit
306679MOV A, C;Move 1's Count Result to Accumulator
3067
3068
3069
32
60
20
STA 2060H;Store the Result for 1's Count
306A78MOV A, B;Move 0's Count Result to Accumulator
306B
306C
306D
32
61
20
STA 2061H;Store the Result for 0's Count
306E76HLT;End of the Program
Above program can be modified as,
  1. Count 1s from the Byte
  2. Store the Result for 1s count
  3. Deduce this result from 8
  4. Store the Result for 0s count (what is work out by deduction)

Comments

Popular posts from this blog

IntArray Class Definition:: It can hold an array of Integer with Diffrent Size

A Class named ' intarray ' which can store an integer array of different size. This Class contains:: O Constructor with deafault argument value At the time of Object creation if array size is missing then An array of size 0 will be created. O Copy Constructor This Constructor is used to create a new Object from an existing Object. O Overloaded Operator = This operator is overloaded to assign an intarray object into another object, simply as two integer variables can be made. O Overloading Operator [ ] As array element can be reffered by its position declaring in Subscript operator ( [ ] ), here every element of an object array can be reffered by [ ] operator. O Overloading Operator >> This is an input operator . Here we can take input to a object simply by this line cin >> a; . Here a is an intarray object. O Overloading Operator This is an output operator . Here we can get the output of an intarray object by this line cout . Here a is an intarray ob...

How to set Set-Top Box to Resume automatically to last Channel after switch on?

How to set customised automatic Resume Channel to last viewed in Set-Top Box?  Introduction In the era of Digitally fast growing life WiFi enabled smart devices and also voice controlled smart devices are trying to be companion of every human being. But, all human do not change their habit at the same time. It may be cause of mental attachment or financial limits or unwillingness or though as unnecessary. What ever the reason may be, there exists the old technology, like IR(Infrared), RF(Radio Frequency), etc. So, this article for them who are using "Un-smart" TV like me in this time of Smart World. I was searching for a solution to set my Set-top Box of Videocon DTH (controlled by a RF Remote) to resume the last viewed channel when I power on my TV anytime. Suppose, I was watching NAT-Geo and switch off my (Un-smart) TV, even switch off the plug power at board. Now, after some time / on the next day, when I switch on my TV it will directly tune to the last viewed channel, i....