Question 2: (back)
Write a program that reads a single precision floating point value from the user, takes the absolute value of that number, and then displays the result. Hint: this program does not use any arithmetic instructions or comparisons. Take a look at the binary representation for floating point numbers in order to solve this problem.
program Question2; #include( "stdlib.hhf" ); static r: real32; r2: real32; cnt: int8; cnt2: int8; begin Question2; mov( 0, eax ); stdout.put( "Please enter a real number: " ); stdin.get( r ); mov( (type dword r), eax ); stdout.newln(); stdout.put( "Binary: "); mov( 0, cnt ); mov( 0, cnt2 ); while( cnt < 32 ) do if( cnt2 = 4 ) then stdout.put( "_" ); mov( 0, cnt2 ); endif; shl( 1, eax ); if( @c ) then stdout.put( "1" ); else stdout.put( "0" ); endif; inc( cnt ); inc( cnt2 ); endwhile; end Question2;