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