如何检查数字是否为64位整数

时间:2012-03-21 20:46:58

标签: mips

我在MIPS中进行递归的斐波那契分配,并在我的mac上使用qtSpim进行模拟并使其正常工作。但是,我的老师想要一种方法来检查整数n是否在fib函数中过大,如果是这样,“输出数字太大”。关于如何做到这一点的任何提示?

2 个答案:

答案 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),那么您知道新号码太大,就会发生溢出。