--%>

Write a program to display its negative in binary

Write a program in object code that reads a single digit decimal number and displays its negative in binary.  To do this, you must first read the number as a character and then convert it to its numeric value, as discussed in class.  Then, you're going to change this to a negative number in two ways:

   1. First take its 1's compliment by inverting all its bits (changing all 0's to 1 and 1's to 0) using the "bitwise invert r" instruction.  This instruction will at once invert all the bits.  After taking its 1's compliment, take its 2's compliment by adding a 1 to it.  The accumulator will now contain the negative of the number.  To display it, you must get each bit, one by one, and store it as a character so that you can then display the bits as characters.   To do that, take the modulus of the number by 2 (And with 1, as discussed in class).  If the least significant bit is 1, the modulus will produce a 1, if it's 0, it'll give you a 0.  Convert it to character and store.  But, note that taking the modulus will overwrite the number in accumulator with the remainder that gets produced.  So, before doing the modulus, you must first save the value that's in the accumulator.  After saving the first bit, load the number you had saved back into the accumulator.  Then, to get the second bit, we must make it the least significant bit in the accumulator.  There is an easy way to do that:  just shift the number to right once.  The second bit will be positioned at the first bit location.  Save the number again and do the modulus again, convert the remainder to a character and save it.  Do this for three more bits for a total of 5 bits.  Why 5?  Because to represent the negative of a 0-9 we need 5 bits unlike the unsigned value which requires only 4.  Now, you have the five bits saved as characters which you can display.

   2. The second way to do this is the same as 1 above with one small difference:  instead of first taking the 1's compliment of the number and then its 2's compliment, you can take its 2's compliment directly by using the "Negate r" instruction.  This is only slightly shorter as you won't have to add 1.  The rest will be the same.  When you display the result after doing it this way, you should, of course, get the same result as in 1.

Finally, to check your answer, load the original positive number that you had saved back into the accumulator, add to it the negative number which you had also saved, convert the sum to a character and display the resulting character.  It must be a 0.

Load the pepo file and submit.

The following is a sample run of the program:

Input:   8

 

Output:

-8=11000                    (from conversion using bitwise invert instruction)

-8=11000                    (from conversion using Negate instruction)

8-8=0                         

To print a new line, just display the ASCII value of newline.

   Related Questions in Programming Languages

  • Q : What is Timeslice Timeslice : It is the

    Timeslice: It is the amount of running time assigned to a process or thread prior to the scheduler considers the other to be run. The process or thread will not be capable to employ its full allocation of time when it becomes blocked or preempted thro

  • Q : What is Filter stream Filter stream :

    Filter stream: It is an input-output class which filters or manipulates its stream of input- or output-data in some manner. Two illustrations are: DataInputStream and DataOutputStream.

  • Q : Define the term Marking interface

    Define the term Marking interface: It is an interface with no methods.

  • Q : Define Loop variable Loop variable : A

    Loop variable: A variable employed to control the operation of a loop, like a for loop. Usually, a loop variable will be provided an initial value and it is then incremented after each and every iteration till it passes or reaches a terminating value.

  • Q : Explain Relative filename Relative

    Relative filename: It is a filename whose full path is associative to some point within a file system tree-frequently the present working folder (that is, directory). For example:   

  • Q : Explain Information hiding Information

    Information hiding: The practice of making sure that only as much information is exposed regarding the implementation of a class as is strictly needed. Hiding needless knowledge of implementation makes it not as much of likely that other classes will

  • Q : Uses of BYTE Write a program that shows

    Write a program that shows the uses of BYTE, WORD and DWORD?

  • Q : What are the examples of microkernel

    What are the examples of microkernel?

  • Q : What is First in-first out First in,

    First in, first out: It is FIFO semantics of the queue data structure. Items are eliminated in the order in which they arrived in the queue; therefore older items are always eliminated before newer ones.

  • Q : What is Octal character constant Octal

    Octal character constant: It is a character constant in the form of \ddd, where each d is an octal digit. This might be employed for characters with a Unicode value in the range of 0 to 255.