как проверить, является ли число 64-битным целым - PullRequest
0 голосов
/ 22 марта 2012

Я делаю рекурсивное назначение Фибоначчи в MIPS и имитировал qtSpim на моем Mac, и он работает. Тем не менее, мой учитель хочет проверить, не является ли целое число n слишком большим в функции fib, и если да, «вывести число слишком большое». Любые советы о том, как я мог бы сделать это?

Ответы [ 2 ]

2 голосов
/ 22 марта 2012

Я не знаю много о наборе команд MIPS, но общий подход ассемблера заключается в проверке флага переноса после операции. Если он установлен, то результат был слишком большим для (без знака) арифметики.

AFAIK, MIPS не имеет флага переноса. Но вы можете приблизить один следующим образом:

addu $t3, $t2, $t1  # t3 = t2 + t1
sltu $t4, $t3, $t1  # t4 = 1 if carry occurred
1 голос
/ 22 марта 2012
F(n) = F(n - 1) + F(n - 2)

также:

F(n) > F(n - 1)

Если F(n) < F(n - 1), то вы знаете, что новый номер слишком велик, произошло переполнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...