--%>

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 an Assembly language Assembly

    Assembly language: This is a symbolic language closely analogous to the instruction set of a Central Processing Unit. The program employed to translate a program written in assembly language is termed an assembler.

  • Q : Security features in the UNIX State the

    State the various security features within the UNIX?

  • Q : Define the term XML Canonicalization

    Define the term XML Canonicalization?

  • Q : What is an Unary operator What is an

    What is an Unary operator: It is an operator which takes a single operand. Java's unary operators are as -, +, !, !, ++ and --.

  • Q : Asynchronous and synchronous postback

    Differeniate asynchronous postback and synchronous postback?

  • Q : Application of S60 device The

    The application has been earlier tested along with an S60 2nd Edition device and this is Symbian Signed. So can I install similar application to another S60 device?

  • Q : Explain the benefits of distributed

    Explain the benefits of distributed systems.

  • Q : Explain Two dimensional array Two

    Two dimensional array: A two dimensional array is a continuous memory location having similar kind of data arranged in row and column format (such as a matrix structure). D

  • Q : Define Modem Modem : It is a

    Modem: It is a modulator-demodulator. A hardware device employed to connect a digital computer to an analogue telephone network by making analogue signals into digital signals, and vice-versa.

  • Q : Explain Object reference Object

    Object reference: It is a reference to an object. Languages other than Java employ terms like pointer or address or. It is significant to keep the difference clear between an object and its reference. The variable like argo

    Discover Q & A

    Leading Solution Library
    Avail More Than 1422153 Solved problems, classrooms assignments, textbook's solutions, for quick Downloads
    No hassle, Instant Access
    Start Discovering

    18,76,764

    1959872
    Asked

    3,689

    Active Tutors

    1422153

    Questions
    Answered

    Start Excelling in your courses, Ask an Expert and get answers for your homework and assignments!!

    Submit Assignment

    ©TutorsGlobe All rights reserved 2022-2023.