Factorielle en assembleur

enis -  
 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

  1. lirey83 Messages postés 76 Statut Membre 13
     
    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
    1. zozoanis
       
      ; 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
      1. Rosa > zozoanis
         
        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