Question: Let m be a segment of data memory starting at location 5100 and ending at the first locations (after 5100) that contains 0. Write a
Let m be a segment of data memory starting at location 5100 and ending at the first locations
(after 5100) that contains 0.
Write a MIPSzy program that computes:
the sum of positive numbers in m (stored in data memory location 5084)
the number of positive values in m (stored in data memory location 5088)
the sum of negative numbers in m (stored in data memory location 5092); and
the number of negative values in m (stored in data memory location 5096)
For example, if m contains:
| 5100 | 10 |
| 5104 | 12 |
| 5108 | -5 |
| 5112 | -6 |
| 5116 | 11 |
| 5120 | 1 |
| 5124 | 0 |
After execution of the program, data memory will contain:
| 5084 | 34 |
| 5088 | 4 |
| 5092 | -11 |
| 5096 | 2 |
| 5100 | 10 |
| 5104 | 12 |
| 5108 | -5 |
| 5112 | -6 |
| 5116 | 11 |
| 5120 | 1 |
| 5124 | 0 |
Should be somewhat similar to this code:
add $t0, $zero, $zero
add $t1, $zero, $zero
addi $t1, $zero, 5100
addi $t5, $t2, -4
addi $t6, $t5, -4
Top:
lw $t3, 0($t2)
beq $t3, $zero, Done
slt $t4, $t3, $zero
addi $t4, $t4, -1
beq $t4, $zero, Next
addi $t1, $t1, 1
add $t0, $t0, $t3
Next:
addi $t2, $t2, 4
j Top
Done:
sw $t1, 0($t5)
sw $t0, 0($t6)
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
