## Machine Organization and Assembly Language
programming

Problem Set #1 Due: Wednesday April 7th

1. By the due date, you
should have read Chapter 1, Chapter 3 (Sections 3.1 to 3.3) and Chapter 2
(Sections 2.1 to 2.6)

2. Please do the
"Assignment #0 -- Getting Familiar with Spim". The text of the
assignment is on the Web. You DON'T have to turn it in.

3. Convert 255 into a 16-bit
two's complement binary number. Give the answer in hexadecimal.

4. Convert -512 into a 16-bit
two's complement binary number. Give the answer in hexadecimal.

5. What decimal number does
this two's complement binary number represent

1111 1111 1111 1111 1111 1111 1001 1011 ?

6. What binary number does
this 32-bit two's complement hexadecimal number represent: 0fff ffff?

What decimal number does it represent? (you can use an expression of the form
2**x + y for the decimal number if you find it convenient)?

7. What binary number does this 32-bit two's
complement hexadecimal number represent: 8000 0000 ?

What decimal number does it represent? (you can use an expression of the form
2**x + y for the decimal number if you find it convenient)?

8. Assume an 8-bit register
and a 2's complement representation of integers.

·
What are the largest
positive number and the smallest negative number that you can represent (give
representations in 2's complement and their values in decimal).

·
Give examples of adding
two positive numbers with and without overflow and of subtracting a negative
number from a positive number with and without overflow. Show the 2's
complement representation of the operands and the result in a manner similar to
what is done in the book pp 161.

·
How do you test if a
number is not negative? How do you test if a number is not positive?

·
How do you test for
overflow?