Factorielle en assembleur

Fermé
enis - 3 avril 2007 à 15:30
 Rosa - 16 janv. 2017 à 19:09
salut tt le monde est ce que vous pouvez m'aider a regler ce probleme:voila g un probleme pour ecrire un prog en assembleur qui calcul le factorielle d'un nombre entier

2 réponses

j'ai le mém probléme!!:(
1
lirey83 Messages postés 75 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 18 août 2007 13
4 avril 2007 à 12:15
Salut,

Tu écris ton code en C, tu compiles et tu regardes le code assembleur généré (option -S ou /S du compilateur).
-1
; unsigned long factorielle (unsigned int);
; retourne dans EAX la factorielle du nombre en EBP+8
; Registres détruits : EAX, ECX, EDX
_factorielle proc
push ebp
mov ebp, esp

; Sauvegarde des registes conventionnelle
push ebx

mov ebx, [ebp+8]
test ebx, ebx
jnz appel_recursif

; Si n == 0 on retourne 1
mov eax, 1
jmp fin

; Sinon on retourne n*factorielle(n-1)
appel_recursif:
lea ecx, [ebx-1] ;
push ecx ;
call _factorielle ; EAX = factorielle (n-1)
add esp, 4 ;

mul ebx ; EDX:EAX = EAX*EBX

fin:
; Restauration des registre
pop ebx
pop ebp

ret
_factorielle endp
0
Rosa > zozoanis
16 janv. 2017 à 19:09
Salut j'ai besoin solution de cette exercices
Écrire un programme assembleur pour MIPS R3000 qui permet de calculer le factoriel du nombre 6
0