无法将以 x+4 地址开始的单词加载到 QtSpim 中的注册表中
Can't load a word starting at x+4 address into registry in QtSpim
我想从内存中加载一个单词,地址为 x +4 到注册表中,但以下代码不起作用。我做错了什么?
.data
x: .word 10
y: .word 11
z: .word 12
.text
main:
lw $t0, x
lw $t1, 4($t0)
li $v0, 10
syscall
我在 inst/data 获取错误和发生异常时得到一个未对齐的地址
您没有正确加载 x
的地址:
lw $t0, x
那条指令(其实是两条指令,因为lw reg,absolute_address
是伪指令)把位于x
的值加载到$t0
.所以你得到 $t10 = 10
,然后在下一行你尝试从地址 10 + 4 == 14
加载,当然你不能这样做,因为地址需要字对齐。
如果你想将x
的地址加载到$t0
中,你应该使用的是:
la $t0, x
我想从内存中加载一个单词,地址为 x +4 到注册表中,但以下代码不起作用。我做错了什么?
.data
x: .word 10
y: .word 11
z: .word 12
.text
main:
lw $t0, x
lw $t1, 4($t0)
li $v0, 10
syscall
我在 inst/data 获取错误和发生异常时得到一个未对齐的地址
您没有正确加载 x
的地址:
lw $t0, x
那条指令(其实是两条指令,因为lw reg,absolute_address
是伪指令)把位于x
的值加载到$t0
.所以你得到 $t10 = 10
,然后在下一行你尝试从地址 10 + 4 == 14
加载,当然你不能这样做,因为地址需要字对齐。
如果你想将x
的地址加载到$t0
中,你应该使用的是:
la $t0, x