所以,最近我参加了集会班,其中一人给了我一个任务。我编写了除最后一部分之外的所有内容...我只需要在给定的数组中添加数字并打印总和......这很简单吗? 不,当我运行时我有一个错误说第12行由于某种原因超出范围= /
所以,这是我的代码:
.data
array: .word 1,2
size: .word 2
la $s0, array
lw $s1, size
li $t9, 0
.text
loop:
lw $a0, ($s0)
add $a0, $a0, $a0
addi $s0, $s0, 4
add $t9, $t9, 1
blt $t9, $s1, loop
li $v0, 1
syscall
答案 0 :(得分:2)
la $s0, array
位于.data
部分,因此永远不会执行。
如果您使用调试器进行单步操作,您会看到您的程序从不执行数据部分中的指令,并且可能会在loop:
开始执行。
此时,$s0
恰好仍为零(根据您的错误消息)。无论如何,它没有指向array
。