Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1491 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C/ASM] Traduction C ASM

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C/ASM] Traduction C ASM

n°648940
Profil sup​primé
Posté le 19-02-2004 à 20:16:53  answer
 

J'ai un code C

Code :
  1. #include <stdio.h>
  2. main()
  3. {
  4.   int i,j,k;
  5.   i=1; j=2;
  6.   k=i+j;
  7.   printf("La somme calculee est : %d\n",k);
  8. }


 
Et le résultat de la commande suivante :
gcc -O0 -S test.c
qui me donne test.s une traduction ASM ci dessous

Code :
  1. .file "test.c"
  2. .section .rodata
  3. .LC0:
  4. .string "La somme calculee est : %d\n"
  5. .text
  6. .globl main
  7. .type main,@function
  8. main:
  9. pushl %ebp
  10. movl %esp, %ebp
  11. subl $24, %esp
  12. andl $-16, %esp
  13. movl $0, %eax
  14. subl %eax, %esp
  15. movl $1, -4(%ebp)
  16. movl $2, -8(%ebp)
  17. movl -8(%ebp), %eax
  18. addl -4(%ebp), %eax
  19. movl %eax, -12(%ebp)
  20. subl $8, %esp
  21. pushl -12(%ebp)
  22. pushl $.LC0
  23. call printf
  24. addl $16, %esp
  25. leave
  26. ret
  27. .Lfe1:
  28. .size main,.Lfe1-main
  29. .ident "GCC: (GNU) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)"


 
J'aimerais savoir quels sont les symboles des variables i j et k et de l'addition dans ce code ASM ...
 
THX


Message édité par Profil supprimé le 19-02-2004 à 20:17:12
mood
Publicité
Posté le 19-02-2004 à 20:16:53  profilanswer
 

n°648946
chrisbk
-
Posté le 19-02-2004 à 20:20:09  profilanswer
 

movl $0, %eax
subl %eax, %esp  
 
[:mlc] ?
 
i se trouve en [ebp - 4] et j en [ebp - 8]
k en [ebp - 12]

n°648948
Profil sup​primé
Posté le 19-02-2004 à 20:22:10  answer
 

et pour l'addition ??? J'ai pas très bien pigé ...

n°648951
chrisbk
-
Posté le 19-02-2004 à 20:23:48  profilanswer
 

Code :
  1. movl $1, -4(%ebp);    //met 1 dans [ebp - 4]
  2. movl $2, -8(%ebp);    //met 2 dans [ebp - 8]
  3. movl -8(%ebp), %eax;  //charge [ebp-8] dans eax
  4. addl -4(%ebp), %eax;  //ajoute [ebp-4] a eax  
  5. movl %eax, -12(%ebp); //copie eax dans [ebp-12]


 
 
vois pas le pb ? c'est limpide


Message édité par chrisbk le 19-02-2004 à 20:25:05
n°648953
Profil sup​primé
Posté le 19-02-2004 à 20:25:25  answer
 

AH oui !!!! Nikel je viens de comprendre merci les gars

n°648976
bjone
Insert booze to continue
Posté le 19-02-2004 à 20:35:02  profilanswer
 

j'espère que c'est pas du code censé être optimisé :D

n°649081
chrisbk
-
Posté le 19-02-2004 à 22:21:11  profilanswer
 

Jardy a écrit :

AH oui !!!! Nikel je viens de comprendre merci les gars  


 
le [:justeleblanc]

n°649084
chrisbk
-
Posté le 19-02-2004 à 22:22:36  profilanswer
 

bjone a écrit :

j'espère que c'est pas du code censé être optimisé :D


 
non n'importe quel compilo un brin decent aurait virer i,j,k et balancer directement 3 a printf :o

n°649150
bjone
Insert booze to continue
Posté le 19-02-2004 à 23:51:53  profilanswer
 

ouais je sais :D j'avais bien vu le -O0 :D


Message édité par bjone le 20-02-2004 à 10:45:08
n°649157
xav14
Posté le 20-02-2004 à 00:07:21  profilanswer
 

ptain ca me donne envie de me mettre a l'assembleur :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C/ASM] Traduction C ASM

 

Sujets relatifs
[ ASM INTEL LINUX ] - Besoin d'aide pour comprendre qques trucs Svp[ASM] Gros nb (oui c moi), j'ai pondu ce code plein d'érreurs...
[ASM[ Problème de conversionTraduction d'un soft => pb avec l'affichage des apostrophes...
Une insctruction en ASMComment faire un effet de feu en ASM sur un amiga 500
[eclipse] est ce un bon outils de developpement pour le C/C++/Asm ??[GCC][ASM] Assembleur inline gcc
[ASM] qui peut m'expliquer ce prog ?Trouver une table de traduction?
Plus de sujets relatifs à : [C/ASM] Traduction C ASM


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR