汇编递归求斐波那契数列前N项!

aqicure 2020-05-09 07:21:20
头都大了还是不会
萌新觉得汇编好难

比如输入4 输出 1 1 2 3 这四项


求大佬教教我 要用递归解决
...全文
747 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
aqicure 2020-05-15
  • 打赏
  • 举报
回复
引用 3 楼 zara 的回复:
算法,很简单的啊,n<=1 则 fibo(n)=1,n>=2 则 fibo(n)=fibo(n-1)+fibo(n-2) 就是这样。
n 在 cx, fibo(n) 返回在 ax 。这样用递归方法,大多数的运算是多余了吧?
fibo2	proc
push dx
cmp cx, 1
jbe l_le1
l_gt1:
dec cx
call fibo2
mov dx, ax
dec cx
call fibo2
add ax, dx
add cx,2
jmp l_ret
l_le1:
mov ax, 1
l_ret:
pop dx
ret
fibo2 endp
大佬 我借鉴你的程序后 自己编的输出前N项总是乱码
zara 2020-05-15
  • 打赏
  • 举报
回复
乱码,没有把数值转换为显示的字符吗,还是转换错误?在显示之前断点停下来,先看看待输出的值是否对,往后走走,看看错在哪里
zara 2020-05-12
  • 打赏
  • 举报
回复
算法,很简单的啊,n<=1 则 fibo(n)=1,n>=2 则 fibo(n)=fibo(n-1)+fibo(n-2) 就是这样。
n 在 cx, fibo(n) 返回在 ax 。这样用递归方法,大多数的运算是多余了吧?
fibo2	proc
push dx
cmp cx, 1
jbe l_le1
l_gt1:
dec cx
call fibo2
mov dx, ax
dec cx
call fibo2
add ax, dx
add cx,2
jmp l_ret
l_le1:
mov ax, 1
l_ret:
pop dx
ret
fibo2 endp
aqicure 2020-05-12
  • 打赏
  • 举报
回复
引用 1 楼 zara 的回复:
是怎么算不会,还是不知道怎么用汇编表示?
怎么算,应该简单吧,毕竟书上应该有的,函数式也算简单,理解不难。
汇编的表示,其实和高级语言差不多,只是可用指令/语句和语法上的不同,思路都是一样的。
书上没有例子
zara 2020-05-10
  • 打赏
  • 举报
回复
是怎么算不会,还是不知道怎么用汇编表示?
怎么算,应该简单吧,毕竟书上应该有的,函数式也算简单,理解不难。
汇编的表示,其实和高级语言差不多,只是可用指令/语句和语法上的不同,思路都是一样的。

21,459

社区成员

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

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