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

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

         
      
      


 

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

原文地址:https://www.cnblogs.com/suncoolcat/p/3358003.html