Factorielle en assembleur
enis
-
Rosa -
Rosa -
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
Configuration: Windows XP Internet Explorer 6.0
2 réponses
-
-
Salut,
Tu écris ton code en C, tu compiles et tu regardes le code assembleur généré (option -S ou /S du compilateur).-
; 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- Salut j'ai besoin solution de cette exercices
Écrire un programme assembleur pour MIPS R3000 qui permet de calculer le factoriel du nombre 6
-