我的代码出了什么问题? (在数组中添加数字)

时间:2017-09-24 16:19:32

标签: assembly mips

所以,最近我参加了集会班,其中一人给了我一个任务。我编写了除最后一部分之外的所有内容...我只需要在给定的数组中添加数字并打印总和......这很简单吗? 不,当我运行时我有一个错误说第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

1 个答案:

答案 0 :(得分:2)

la $s0, array位于.data部分,因此永远不会执行。

如果您使用调试器进行单步操作,您会看到您的程序从不执行数据部分中的指令,并且可能会在loop:开始执行。

此时,$s0恰好仍为零(根据您的错误消息)。无论如何,它没有指向array