Computer Organization and Structure
Homework
#2
Due:
2007/10/30
1. What
binary number does this hexadecimal number represent: 7fff fffahex? What
hexadecimal number does this binary number represent: 1100 1010 1111 1110 1111
1010 1100 1110two? What decimal number do they represent,
respectively?
2.
Add comments to the following MIPS code and describe
in one sentence what it computes. Assume that $a0 and $a1 are used for the
input and both initially contain the integers a and b,
respectively. Assume that $v0 is used for the output.
add $t0, $zero, $zero
loop: beq $a1, $zero, finish
add $t0, $t0, $a0
addi $a1, $a1, -1
j loop
finish: addi $t0,
$t0, 100
add $v0, $t0, $zero
3. The
following code fragment processes two arrays and produces an
important value in register $v0.
Assume that each
array consists of 2500
words indexed 0 through 2499, that the base addresses of the arrays are stored
in $a0 and $a1 respectively, and their sizes (2500) are stored in
$a2 and $a3, respectively. Add comments to the
code and describe in one sentence what this code does. Specifically,
what will be returned in $v0?
sll $a2, $a2,
2
sll $a3, $a3,
2
add $v0,
$zero, $zero
add $t0,
$zero, $zero
outer: add $t4, $a0, $t0
lw $t4, 0($t4)
add $t1, $zero, $zero
inner: add $t3, $a1, $t1
lw $t3, 0($t3)
bne $t3, $t4, skip
addi $v0, $v0,
1
skip: addi $t1, $t1, 4
bne $t1, $a3, inner
addi $t0, $t0,
4
bne $t0, $a2,
outer
4. Find
the shortest sequence of MIPS instructions to determine if there is a carry out
from the addition of two registers, say registers $t3 and $t4. Place
a 0 or 1 in register $t2 if
the carry out is 0 or 1, respectively. (Hint: It can be done in two
instructions.)