我有一个大学作业,我得到了这个数据:
.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出了问题?
1条答案
按热度按时间lxkprmvk1#
我找出了哪里出了问题,显然我和chatgpt错了,因为“d:字节-1,0,0,0”捕获4字节的存储器,而“c:.word-1”的另一个4字节。最后,“e:.word 3,2,1,0”捕获总共16个字节,这意味着操作$10-12将我带到了保持值1的e[2]。