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

在MIPS汇编中执行17+54加法结果始终为G,求解决方法

MIPS加法结果显示为G的修复方案

问题根源

你代码里的加法逻辑是对的(17+54=71),但输出环节犯了关键错误:

  • 你调用了li $v0,4,这个MIPS系统调用是打印字符串的,要求$a0传入字符串的起始地址。
  • 但variable3是用.word存储的整数,你用la $a0, variable3把它的地址传给$a0后,系统会把该地址存储的71当作ASCII字符解析——而ASCII码71对应的字符正是'G',所以才会输出G。

修正后的代码

.data
variable1: .word 17
variable2: .word 54
variable3: .word 0

.text
main:
    lw $t0, variable1
    lw $t1, variable2
    add $t2, $t0, $t1
    sw $t2, variable3

    # 使用打印整数的系统调用
    li $v0, 1
    lw $a0, variable3
    syscall

    li $v0, 10
    syscall

关键修改点

  • 把打印字符串的li $v0,4改成打印整数的li $v0,1
  • 把取地址的la $a0, variable3改成加载整数的lw $a0, variable3,这样$a0里存的是加法结果71,而不是内存地址
  • 删除了中间无意义的syscall,避免触发未定义的系统调用行为

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:05:35