我正在学习如何在汇编中编码,所以我是一个菜鸟。我写了这段代码,它在数组中添加了3个第一个元素并将其保存到数组中的第4个元素但是我收到了错误但是我不理解它的含义以及我做错了什么。
这是错误 第19行:0x00400040处的运行时异常:地址超出范围0x00000018
.text
.globl main
main: la $t0, i
la $s0, sum
la $t3, array
la $t5, k
lw $t0, 0($t0)
lw $s0, 0($s0)
lw $t3, 0($t3)
lw $t5, 0($t5)
Loop:
add $s0, $s0,$t3, # adds sum with element in array
addi $t3, $t3, 4 # add 4 to array to get next element
addi $t0, $t0, 1 #add + to i
bne $t5, $t0, Loop # if k !=i back to loop
sw $s0, 12($t3) #store sum in 4th element of array
nop
.data 0x10010000
i: .word 0
k: .word 3
sum: .word 0
array: .word 0:2
答案 0 :(得分:0)
我根本不认识这个集会,并且考虑到压倒性的反应,我认为没有其他人做过,但经过一些检查,我认为你正在混合价值观和地址!
在
add $s0, $s0,$t3, # adds sum with element in array
你使用$ t3和数组中的值
并在
addi $t3, $t3, 4 # add 4 to array to get next element
你希望$ t3包含一个地址。你不能同时拥有两者。