Assembleur 68000 aide pour devoir
ARTHUR32
Messages postés
157
Statut
Membre
-
ARTHUR32 Messages postés 157 Statut Membre -
ARTHUR32 Messages postés 157 Statut Membre -
Bonjour,
Je suis étudiant en première année de STI (génie électronique)
J'ai un programme en assembleur à débuger et avec mes recherches et les explications de mon prof, je ne vois pas la solution aux 14 erreurs que compte ce programme :
Le but du programme est de réaliser la fonction suivante pour calculer les nombres de Fibonacci (voir wikipédia) sans utiliser la directive invoke :
int fibonacci(int n){
if(n <= 1 )
return 1;
else
return (fibonacci(n-1)+fibonacci(n-2));
}
Code à corrigé en assembleur:
Fibonacci proc n:DWORD
MOVE eax,n
If: CMP eax,1
JMP else ;si n<=1
MOVE eax,1 ;retourner 1
RESET
else: DEC eax ;n-1
PUSH eax ;n-1 sur la pile
CALLM Fibonacci ;resultat dans eax
ROL ebx ;rectifier la pile et ebx=n-1
DEC ebx ;ebx=n-2
PUSH eax ;sauvegarder eax = Fibonacci(n-1) sur la pile
CALLM Fibonacci ;résultat dans eax=Fibonacci(n-2)
ADD esp,1 ;rectifier la pile
ROR ebx ;ebx = Fibonacci(n-1)
ADD eax,ebx ;eax = Fibonacci(n-2) + Fibonacci(n-1)
RESET
Fibonacci endp
J'ai essayé de faire de mon mieux car j'ai enlevé 5 erreurs (bien pour un débutant)
Pour le programme, merci de ne pas utiliser la fonction invoke (consigne).
Je suis disponible pour répondre a vos questions.
J'utilise IDE68000 demander par la prof
http://www.easy68k.com/
Merci d'avance.
Je suis étudiant en première année de STI (génie électronique)
J'ai un programme en assembleur à débuger et avec mes recherches et les explications de mon prof, je ne vois pas la solution aux 14 erreurs que compte ce programme :
Le but du programme est de réaliser la fonction suivante pour calculer les nombres de Fibonacci (voir wikipédia) sans utiliser la directive invoke :
int fibonacci(int n){
if(n <= 1 )
return 1;
else
return (fibonacci(n-1)+fibonacci(n-2));
}
Code à corrigé en assembleur:
Fibonacci proc n:DWORD
MOVE eax,n
If: CMP eax,1
JMP else ;si n<=1
MOVE eax,1 ;retourner 1
RESET
else: DEC eax ;n-1
PUSH eax ;n-1 sur la pile
CALLM Fibonacci ;resultat dans eax
ROL ebx ;rectifier la pile et ebx=n-1
DEC ebx ;ebx=n-2
PUSH eax ;sauvegarder eax = Fibonacci(n-1) sur la pile
CALLM Fibonacci ;résultat dans eax=Fibonacci(n-2)
ADD esp,1 ;rectifier la pile
ROR ebx ;ebx = Fibonacci(n-1)
ADD eax,ebx ;eax = Fibonacci(n-2) + Fibonacci(n-1)
RESET
Fibonacci endp
J'ai essayé de faire de mon mieux car j'ai enlevé 5 erreurs (bien pour un débutant)
Pour le programme, merci de ne pas utiliser la fonction invoke (consigne).
Je suis disponible pour répondre a vos questions.
J'utilise IDE68000 demander par la prof
http://www.easy68k.com/
Merci d'avance.
A voir également:
- Assembleur 68000 aide pour devoir
- Logiciel assembleur - Télécharger - Édition & Programmation
- Tp corrigé assembleur 8086 - Forum Programmation
- L'enfer du devoir saison 1 streaming vf - Forum Cinéma / Télé
- Assembleur 8086 - Forum Programmation
- Comment envoyer un devoir oral au cned - Forum Réseaux sociaux