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

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



         

      

      


 

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

 

 

你可能感兴趣的:(汇编语言)