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 :
J'ai essayé de faire de mon mieux car j'ai enlevé 5 erreurs (bien pour un débutant)Code: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
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.
-----