Computer Organization and Structure
Homework #3
Due: 2005/11/22
1.
Convert 512ten, -1,023ten,
and -4,000,000ten into 32-bit two’s complement binary numbers,
respectively, and convert the following two’s complement binary numbers to be
decimal numbers:
a.
1111 1111 1111 1111 1111
1110 0000 1100two;
b.
1111 1111 1111 1111 1111
1111 1111 1111two;
c.
0111 1111 1111 1111 1111 1111
1111 1111two.
2.
Find the shortest sequence of MIPS instructions
to determine the absolute value of a two’s complement integer. Convert this instruction
(accepted by the MIPS assembler):
abs $t2,
$t3
This
instruction means that register $t2 has a copy of register $t3 if register $t3 is positive,
and the two’s complement of register $t3 if $t3 is negative. (Hint: It
can be done with three instructions.)
3.
The ALU supported set on less than (slt) using just the sign
bit of the adder. Let’s try a set on less than operation using the values -7ten
and 6ten. To make it simpler to follow the example, let’s limit the
binary representations to 4 bits: 1001two and 0110two.
1001two
– 0110two = 1001two + 1010two = 0011two
This result
would suggest that -7ten > 6ten, which is clearly
wrong. Hence we must factor in overflow in the decision. Modify the 1-bit ALU
in the following figures to handle slt correctly.
Figure 1: A 1-bit ALU that performs AND, OR, and addition on a and b or b’.
Figure 2: A 1-bit ALU for the most significant bit.
4.
Add 2.85ten x 103 to 9.84ten
x 104 and add 3.63ten x 104 to 6.87ten
x 103, respectively, assuming that you have only three significant
digits, first with guard and round digits and then without them.
5.
Show the IEEE 754 binary representation for the
floating-point number 10ten, 10.5ten, 0.1ten,
and -2/3, respectively.