计算斐波那契数列第N项问题

xuxinjun 2004-04-15 08:03:58
我正在学习CASL汇编语言程序设计(赵立辉编),书中讲到计算斐波那契数列第N项问题,调用时参数N存于GR1,结果存于GR2,计算斐波那契数列第N项公式:
F(1)=1,F(2)=1,F(N)=F(N-1)+F(N-2)

书中给出代码如下:

FIB START
CPA GR1,C1
JZE BASIS
CPA GR1,C2
PUSH 0,GR1
LEA GR1,-2,GR2
CALL FIB
POP GR1 ;上一个递归调用终结才返回这里吗?,那GR1=1或2?
PUSH O,GR1
PUSH 0,GR2
LEA GR1,-1,GR1 ;从这里看GR1应从大到小依序变化并递归调用
CALL FIB
POP GR1
ST GR1,WRK
POP GR1
ADD GR2,WRK
JMP BACK
BASIS LEA GR2,1
BACK RET
C1 DC 1
C2 DC 2
WRK DS 1
END

请问各位高手,此递归调用和回退到底怎样实现的啊?
...全文
108 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuxinjun 2004-04-15
  • 打赏
  • 举报
回复
我把GR1中内容搞错了,递归调用后会返回到相同层,但整个过程到底是怎样的呢?

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧