我刚收到一个关于斐波那契数列汇编程序的问题。问题如下: 斐波那契数列F
定义为F(1) = F(2) = 1
和 对于n ≥ 2
,
F(n + 1) = F(n) + F(n − 1)
即(n + 1)th
值由nth
值和(n − 1)th
值之和给出。
- 编写一个典型的 RISC 机器的汇编程序来计算
kth
值F(k)
,其中k
是一个大于2
从内存位置加载的自然数M
,并将结果存储在内存位置M
。
我收到以下答复:
LOAD r2, M
LOAD r0, #1
LOAD r1, #1
4: SUB r2, r2, #1
ADD r3, r0, r1
LOAD r0, r1
LOAD r1, r3
BNE 4, r2, #2 // jump to instruction 4 if r2 is not equal to 2
STOR M, r1
其中# 表示立即寻址,BNE 代表“不相等则分支”。
我不明白为什么...有人可以向我解释一下吗?