Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- EXTERN printf
- EXTERN puts
- SECTION .data
- deb db "Les 30 premiers nombres de fibo sont",13,10,0 ; chaine pour le printf
- deb2 db "%d",13,10,0
- nb db "%d",13,10,0
- vareax dd 0
- varebx dd 0
- varecx dd 0
- varedx dd 0
- SECTION .text
- GLOBAL main
- main:
- push deb
- call puts
- add esp,4
- mov ebx,1
- mov edx,0
- mov eax,0
- mov ecx,2;compteur
- ;On sauvegarde nos variables
- call sauvegarde
- ;On affiche les deux premiers nombres de la suite /!\ le printf detruit les registres.
- push eax
- push deb2
- call printf ;on affiche eax
- add esp,8 ;on add 8 pour le push eax et deb2
- ;On restaure nos variables
- call restauration
- ;Debut for
- debut:
- mov edx,ebx ; edx = ebx
- add ebx,eax ;ebx = ebx + eax
- mov eax,edx ;eax = edx
- ;On sauvegarde nos variables
- call sauvegarde
- push eax
- push nb
- call printf ;on affiche eax
- add esp,8
- ;On restaure nos variables
- call restauration
- inc ecx ;on incremente le compteur
- cmp ecx, 30 ;Tant que ecx n'est pas égal à 30
- jne debut ;On retourne au debut de la boucle
- ret
- ;Sauvegarde les registres
- sauvegarde:
- mov [vareax],eax
- mov [varebx],ebx
- mov [varecx],ecx
- mov [varedx],edx
- ;Restaure les registres
- restauration:
- mov eax,[vareax]
- mov ebx,[varebx]
- mov ecx,[varecx]
- mov edx,[varedx]
Advertisement
Add Comment
Please, Sign In to add comment