Я только что получил вопрос о программе сборки для последовательности Фибоначчи. Вопрос заключается в следующем: последовательность Фибоначчи F определяется как F(1) = F(2) = 1, а при n ≥ 2 F(n + 1) = F(n) + F(n - 1), т. Е. (n + 1) -е значение определяется суммой n-го значения и (n - 1) -го значения. 1. Напишите программу сборки, типичную для машин RISC, для вычисления k-го значения F(k), где k - натуральное число, большее 2, загруженного из ячейки памяти M, и сохранения результата в ячейке памяти M.
Я получил ответ следующего:
- НАГРУЗКА r2, М
- НАГРУЗКА r0, # 1
- LOAD r1, # 1
- SUB r2, r2, # 1
- ДОБАВИТЬ r3, r0, r1
- НАГРУЗКА r0, r1
- НАГРУЗКА r1, r3
- BNE 4, r2, # 2 // перейти к инструкции 4, если r2 не равно 2
- STOR M, r1, где # обозначает немедленную адресацию, а BNE обозначает «ветвь, если не равно».
Я не понимаю почему... Может кто-нибудь, пожалуйста, объясните мне это? Большое спасибо!