MIPS运行时异常地址超出范围



我们必须在使用mars-linux的MIPS中进行的一个小项目是使用老师给我们的基本代码制作4个不同的版本,但问题是在学校里,当我在家尝试时,它会给我

0x00400028处的运行时异常:地址超出0x00000000范围

这将位于B0_7

integer_to_string_v0:       # ($a0, $a1, $a2) = (n, base, buf)
    move $t0, $a2           # char *p = buff
    # for (int i = n; i > 0; i = i / base) {
    move $t1, $a0           # int i = n
    B0_3:   
        blez  $t1, B0_7     # si i <= 0 salta el bucle
        div   $t1, $a1      # i / base
        mflo  $t1           # i = i / base
        mfhi  $t2           # d = i % base
        addiu $t2, $t2, '0' # d + '0'
        sb    $t2, 0($t0)   # *p = $t2 
        addiu $t0, $t0, 1   # ++p
        j     B0_3          # sigue el bucle
    # }
B0_7: 
    sb $zero, 0($t0)        # *p = ''
B0_10: 
    jr $ra

解决方案:设置->将程序计数器初始化为全局"main"(如果已定义)如果它有助于其他人,则在互联网上找到此

最新更新