我在MIPS中进行递归的斐波那契分配,并在我的mac上使用qtSpim进行模拟并使其正常工作。但是,我的老师想要一种方法来检查整数n是否在fib函数中过大,如果是这样,“输出数字太大”。关于如何做到这一点的任何提示?
答案 0 :(得分:2)
我对MIPS指令集知之甚少,但一般的汇编程序方法是在操作后检查进位标志。如果设置了,那么结果对于(无符号)算术来说太大了。
AFAIK,MIPS没有进位标志。但你可以按如下方式估算一个:
addu $t3, $t2, $t1 # t3 = t2 + t1
sltu $t4, $t3, $t1 # t4 = 1 if carry occurred
答案 1 :(得分:1)
F(n) = F(n - 1) + F(n - 2)
也:
F(n) > F(n - 1)
如果F(n) < F(n - 1)
,那么您知道新号码太大,就会发生溢出。