assembly QtSpim在加载a的值时可能会发生错误,字节元素

qgzx9mmu  于 2023-04-30  发布在  其他
关注(0)|答案(1)|浏览(67)

我有一个大学作业,我得到了这个数据:

.data 
a: .word 10
e: .word 3, 2, 1, 0
c: .word -1
d: .byte -1,0,0,0

问题是:如果我们实现了代码,$4的值是多少。..以及为什么:

la $10,d
addi $10,$10,-12
lw $4,0($10)

我想在理论上回答之前和运行代码时检查一下答案:

.data
a: .word 10
e: .word 3, 2, 1, 0
c: .word -1
d: .byte -1, 0, 0, 0
.text
.globl main

main:
la $10,d
addi $10,$10,-12
lw $4,0($10)

li $v0,1
move $a0,$4
syscall

li $v0,10
syscall

QtSpim说输出是1,但我认为输出应该是-1。我先和chatgpt核实了一下,它证实了我的回答:

你们中有谁知道是我/chatgpt错了,还是QtSpim出了问题?

lxkprmvk

lxkprmvk1#

我找出了哪里出了问题,显然我和chatgpt错了,因为“d:字节-1,0,0,0”捕获4字节的存储器,而“c:.word-1”的另一个4字节。最后,“e:.word 3,2,1,0”捕获总共16个字节,这意味着操作$10-12将我带到了保持值1的e[2]。

相关问题