如何使用MIPS处理结果大于10的整数?

如何使用MIPS处理结果大于10的整数?,mips,fibonacci,Mips,Fibonacci,我正在尝试用MIPS做一个斐波那契序列,这是我到目前为止的代码 main: li $t1, 0 li $t2, 1 add $t3, $t1, $t2 loop: add $t3, $t1, $t2 la $t1, ($t3) add $t3, $t1, $t2 la $t2, ($t3) j loop 它工作正常,直到它达到8,它应该再加上5,

我正在尝试用MIPS做一个斐波那契序列,这是我到目前为止的代码

main:
    li $t1, 0
    li $t2, 1
    
    add $t3, $t1, $t2
    
    loop:
        add $t3, $t1, $t2
        la $t1, ($t3)
        
        add $t3, $t1, $t2
        la $t2, ($t3)
        j loop
它工作正常,直到它达到8,它应该再加上5,得到13,但是寄存器显示0x0000000d,然后它完全弄乱了序列,不知怎的,15出现了,然后22,然后37。 我猜这和进位有关,但我该如何处理这个问题,使它正确地进行顺序


谢谢

d的十六进制是13。调试器向您显示十六进制,但13十进制与d十六进制是相同的数值。一些调试器有一个以十进制显示的选项:例如,MARS在设置菜单中有一个复选框“以十六进制显示的值”--取消选中十进制值。不要使用
la
在寄存器之间复制值:改为使用
move
。多亏了你们两位,它现在可以工作了。但是当我用十六进制显示时,它就开始完美地工作了,我想知道为什么它在序列中给我15然后22,而不是13然后21,当然它应该给我相同的值,但在十六进制之前?这方面有点困惑。谢西特一直在工作。display选项只是更改了调试器的显示基数,但它没有改变模拟器或程序的行为。