Question 5: (back)
Write a "CntBits" program that counts the number of one bits in a 16-bit integer value input from the user. Do not use any built-in functions in HLA's library to count these bits for you. Use the shift or rotate instructions to extract each bit in the value.
program Question5;
#include( "stdlib.hhf" );
static
a: uns16;
cnt: uns16;
tot: uns8;
begin Question5;
stdout.put( "Please Enter a Number: ", nl );
stdin.get( a );
mov( a, ax );
mov( 0, cnt );
mov( 0, tot );
while( cnt < 16 ) do
stdout.put( ax, nl );
shr( 1, ax );
if( @c ) then
add( 1, tot );
endif;
add( 1, cnt );
endwhile;
stdout.put( "Total: ", tot, nl );
end Question5;