汇编语言递归:计算斐波那契数列前n项和


; lab3 use proc(parameter passing by stack) 
; to calculate the sum of the first n terms of the Fibonacci series  

.model small

.data
n equ 3 
 
.code
push n
call fib

.exit 0


fib proc  
; stack top : return ip
; stack top -1 : n
; output ax: sum of n size fib 
pop di   ; hold return ip
pop cx	; n

; if n == 1 
cmp cx, 1
jnz elif
mov ax, 1  
push di ; resitution return ip
ret 


; elif n == 2
elif:
cmp cx, 2
jnz else
mov ax, 1 
push di ;resitution return ip
ret

; else
else:

; call fib n-1
dec cx
push cx  ; n-1
call fib

mov dx, ax ; temp store fib n-1

; call fib n-2
dec cx
push cx	; n-2
call fib

add ax, dx  ; cal fib n-1 + fib n-2

push di ; resitution return ip  
ret    
fib endp


end


  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值