You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QtSpim加载.byte元素值异常?MIPS汇编代码结果存疑

MIPS代码执行结果疑问分析

给定数据段

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

执行代码

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

结果分析

要明确寄存器$4的值,需先梳理.data段的内存布局(按地址从低到高顺序,.word占4字节,.byte占1字节):

  • a占用4字节(起始地址记为X)
  • e是4个.word,共16字节(地址范围X+4 ~ X+19),其中:
    • e[0]=3在X+4,e[1]=2在X+8,e[2]=1在X+12,e[3]=0在X+16
  • c占用4字节(地址X+20 ~ X+23),存储值为-1
  • d占用4字节(地址X+24 ~ X+27)

代码执行步骤:

  1. la $10,d:将d的起始地址X+24加载到$10
  2. addi $10,$10,-12:$10的地址变为X+24-12=X+12
  3. lw $4,0($10):从地址X+12加载4字节的.word数据,对应e[2]的值1

QtSpim输出1是正确的,你和ChatGPT的错误源于偏移计算失误——d的地址减12指向的是e数组的第三个元素,而非c的地址(d减4才会指向c)。

内容的提问来源于stack exchange,提问作者stratakos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 18:12:06