通过汇编语言中的过程 实现斐波那契数列
通过调用输入readint函数可输第n个斐波那契数列
获得其中的值。
在代码中我们是通过定义兔子的数量来当做
斐波那契数列的值
TITLE td24rabbit;题目
INCLUDE Irvine32.inc
.data
tip1 byte "The total number of rabbits in month was: ",0;提示语
tip2 byte "pelace cin you want the first number of the rabbits : ",0;提示语
tip3 byte "pelace cin you want the number of month :",0;提示语
td2 dword ?
td1 dword ?
.code
Birth PROC td_2:dword,td_1:dword;定义的函数td_1代表输入的初始兔,td_2想要第几个月的兔子数
local loc1:dword ,loc2:dword,loc3:dword;定义的局部变量
mov eax,0
sub td_2,2
mov ecx,td_2
mov eax,td_1
mov loc1,eax;loc1存的是初始兔子数
mov eax,td_1;
mov loc2,eax
mov eax ,td_1
mov loc3,eax;loc3存的是月份-2的
CMP ecx,2
JLE L2
L1:
mov eax,loc1
add eax,loc2
mov ebx,loc2
mov loc1,ebx
mov loc2,eax
loop L1
ret
L2:
mov eax,td_1
ret
Birth endp;函数结束
main proc;主函数调用
mov EDX,OFFSET tip2;插入提示语,下面相同
call WriteString
call readint
mov td1,eax
mov EDX,OFFSET tip3
call WriteString
call readint
mov td2,eax
push td1
push td2
call Birth
mov EDX,OFFSET tip1
call WriteString
call writeint
main endp;主函数结束
end main
先进行编译然后再运行
始值为4时第6个数时32正确