汇编实现Fibnacci

Posted DismalSnail

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编实现Fibnacci相关的知识,希望对你有一定的参考价值。

这里使用32位的汇编环境,编译器为VS2010


.386
.model flat,stdcall
option casemap:none

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

.data   ;数据段
    num dword 15
    szOut byte ‘FIB(%d)=%d‘,0ah,0

.code ;代码段开始
factorial proc C n:dword
    cmp n, 2
    jbe exitrecurse
    mov ebx, n          ;EBX=n
    dec ebx             ;EBX=n-1
    invoke factorial, ebx   ;EAX=(n-1)!
    cmp edx,0
    je scan
    add ecx,eax
    scan:
    mov ebx, n
    sub ebx,2
    invoke factorial,ebx;
    add ecx,eax                 ;EAX=EAX*n
    mov edx,0
    ret
exitrecurse:
    mov eax, 1          ;n=1时,n!=1
    ret
factorial endp

start:
    mov ecx,0
   invoke factorial, num
   invoke printf, offset szOut, num, ecx
   ret
end start;  代码段结束

以上是关于汇编实现Fibnacci的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

斐波那契数列三种方法计算,光棍节快乐

fibnacci数列

关于fibnacci数列

fibnacci数列递归

数论 之 3012 Fibnacci Numbers