您的位置:首页 > 其它

汇编语言的简答入门--斐波那契数列(递归)

2013-10-08 05:25 369 查看
TITLE Save an array and dispaly

INCLUDE Irvine32.inc
.data

array DWORD 12 DUP (?)   ; define a array for saving Fibonacci numbers
step = type array
num DWORD ?
count DWORD ?

prompt byte "The first twelve fibonacci numbers are ",0
prompt1 DWORD "  ",0

.code
main PROC

mov edx,offset prompt
call writestring

mov ebx,0                 ;they are for calculateing the value of array
mov edx,1                 ;
mov ebp,0                 ;

mov ecx,11                ;for outputing
mov eax,00h
display:

push eax
call Fibonacci
pop eax
call writeint
add eax,01h

loop display

call crlf
call waitmsg

exit
main ENDP

Fibonacci proc USES esi eax ebx edx ebp
mov esi,esp
add esi,24

mov eax,[esi]                ;get the value of we have pushed it
cmp eax,1
jl L1

add ebp,ebx                  ;calculate the value of array
add ebp,edx                  ;
mov ebx,edx                  ;
mov edx,ebp                  ;

dec eax                      ;the times of recursion
call Fibonacci
L1:
mov [esi],ebp            ;result return address
ret
loop L1
Fibonacci ENDP
END main


 

输出有错误请求各位兄长学长帮忙!感激不尽。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息