Я только что получил вопрос о программе сборки для последовательности Фибоначчи. Вопрос заключается в следующем: последовательность Фибоначчи 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.

Я получил ответ следующего:

  1. НАГРУЗКА r2, М
  2. НАГРУЗКА r0, # 1
  3. LOAD r1, # 1
  4. SUB r2, r2, # 1
  5. ДОБАВИТЬ r3, r0, r1
  6. НАГРУЗКА r0, r1
  7. НАГРУЗКА r1, r3
  8. BNE 4, r2, # 2 // перейти к инструкции 4, если r2 не равно 2
  9. STOR M, r1, где # обозначает немедленную адресацию, а BNE обозначает «ветвь, если не равно».

Я не понимаю почему... Может кто-нибудь, пожалуйста, объясните мне это? Большое спасибо!

0