2012-03-21 142 views
0

我在MIPS中做遞歸斐波那契分配,並在我的mac上用qtSpim模擬並使其工作。但是,我的老師想要一種方法來檢查fib函數中的整數n是否過大,如果是這樣,「輸出的數字太大」。有關我如何去做這件事的任何提示?如何檢查一個數是否是一個64位整數

+0

我的猜測是,你的老師希望你寫一個處理溢出陷阱。 – dasblinkenlight 2012-03-21 21:02:35

回答

2

我對MIPS指令集了解不多,但一般的彙編程序方法是在操作後檢查進位標誌。如果設置了,那麼結果對於(無符號)算術來說太大了。

AFAIK,MIPS沒有進位標誌。但是,您可以近似一個如下:

addu $t3, $t2, $t1 # t3 = t2 + t1 
sltu $t4, $t3, $t1 # t4 = 1 if carry occurred 
1
F(n) = F(n - 1) + F(n - 2) 

也:

F(n) > F(n - 1) 

如果F(n) < F(n - 1),那麼你知道新號碼過大,出現溢出。

相關問題