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

MIPS中创建数组并求和:.word语法错误求助

MIPS代码语法错误修复方案

你的代码报错并非.word指令的问题,而是存在几处语法和指令使用错误,具体修复如下:

  • 全局符号声明拼写错误
    原代码中globl main缺少开头的点,MIPS汇编里声明全局符号必须用.globl,正确写法是.globl main。

  • addi指令操作数不完整
    addi $t0 , 1 缺少源操作数,addi是立即数加法指令,需要三个操作数:目标寄存器、源寄存器、立即数,正确写法为addi $t0, $t0, 1。

  • 退出程序的syscall编号错误
    原代码用li $v0 , 4调用syscall,但编号4对应打印字符串功能,退出程序需要使用编号10,正确写法是:

    li $v0, 10
    syscall
    

修复后的完整代码:

.data
foo: .word 16,2,77,40,12071

.text
.globl main

li $t0, 0          # int n = 0
li $t1, 0          # int sum = 0
la $t2, foo        # 加载数组基地址到t2 

main:
loop:
beq $t0, 5, end    # 当n等于5时跳转到end
lw $t3, 0($t2)     # 将数组当前元素加载到t3
add $t1, $t1, $t3  # 累加求和
addi $t0, $t0, 1   # n++
add $t2, $t2, 4    # 移动到数组下一个元素(每个word占4字节)
j loop

end:
# 打印结果
li $v0, 1
move $a0, $t1
syscall
# 退出程序
li $v0, 10
syscall 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:20:33