汇编实现Fibnacci函数的功能

这里使用32位的汇编环境


1105549-20180428205140517-1509008312.png

.386
.model flat,stdcall
option casemap:none

includelib msvcrt.lib
printf  PROTO C :dword, :VARARG
scanf   PROTO C :dword, :VARARG

.data   ;数据段
    num   dword ?
    input  byte '%d',0
    szOut byte 'FIB(%d)=%d',0ah,0

.code ;代码段开始
fib proc C n:dword
    cmp n, 2        ;当n=1或 2时跳转
    jbe exitrecurse;小于等于跳转(b:below,e:equal)
    mov ebx, n          ;EBX=n
    dec ebx             ;EBX=n-1
    invoke fib, ebx ;fib(n-1)
    mov ebx, n
    sub ebx,2
    invoke fib,ebx;fib(n-2)
    add eax,1
    ret
exitrecurse:
    ret
fib endp

start:
     mov eax,1
   invoke scanf,offset input,offset num;需要传送地址指针
   invoke fib, num
   invoke printf, offset szOut, num, eax
   ret
end start;  代码段结束

1105549-20180428221618663-2080306751.png

转载于:https://www.cnblogs.com/DismalSnail/p/8969339.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值