我遇到了在循环中对数组内容进行求和的问题。
loop3:
beq $t5, $t1, loop4 #if $t5 is equal to $t1, then goto exit
lw $t6, 0($s0) #load contents of $s0 to $t6
add $t6, $t6, $t6 #sums the contents
addi $s0, $s0, 4 #increments pointer of pArry
add $t5, $t5, 1 #increments counter of loop3
j loop3
答案 0 :(得分:1)
你没有对所有元素求和,因为你在每次迭代开始时用当前数组元素覆盖$t6
:lw $t6, 0($s0) #load contents of $s0 to $t6
将当前元素加载到其他(免费)寄存器中:
lw $t7, 0($s0) #load contents of $s0 to $t7
add $t6, $t6, $t7 #sums the contents
确保在循环开始前清除$t6
。