Mips 尝试在0x00400028处执行非指令。Qtspim中的错误代码

Mips 尝试在0x00400028处执行非指令。Qtspim中的错误代码,mips,qtspim,Mips,Qtspim,我必须将此C代码转换为Mips,并在Qtspim上运行代码 #include <stdio.h> #include <stdlib.h> #include <math.h> int main(void) { int sum = 0; int i; for(i=0; i < 1000; i++) sum = sum + i; printf("sum=%d", sum); return 0; } 此代码

我必须将此C代码转换为Mips,并在Qtspim上运行代码

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void) {
    int sum = 0;
    int i;
    for(i=0; i < 1000; i++)
    sum = sum + i;
    printf("sum=%d", sum);

    return 0;

}

此代码打印正确的值,但仍会导致错误消息。请帮助我

正如我对您上一个问题的评论:“您没有添加任何代码来终止程序(例如,系统调用10)。”是的!我成功了。这就是答案。非常感谢你,朋友
#s1:i, t0:flag, s2:sum

    .data


    .text
    .globl main
main:

    li $s1, 0
    li $s2, 0
    Loop:
        slt $t0, $s1, 1000
        beq $t0, $0, Exit
        add $s2, $s2, $s1
        addi $s1, $s1, 1
        j Loop
    Exit:


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