begin process at 2012 05 25 03:21:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Général

 > 

Désassemblage code C, je ne pige pas !!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Désassemblage code C, je ne pige pas !!

vendredi 26 mai 2006 à 02:07:29 | Désassemblage code C, je ne pige pas !!

bouba

Bonjour, je suis en train d'essayer de voir ce qui se passe derrière un code en C, mais la je bloque dès les trois premières lignes, j'ai donc testé avec le programme C le plus court qu'il soit , mais y'a toujours le même truc que je ne pige pas. Voici le code C utilisé.

main(){}

Je travail sous Linux avec un processeur 32bits (Amd Duron 1.8Ghz si ça peu servir).
Le code assembleur généré par gcc (gcc -S exemplevide.c) est le suivant

        .file   "exemplevide.c"
        .text
.globl main
        .type   main, @function
main:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $8, %esp
        andl    $-16, %esp
        movl    $0, %eax
        addl    $15, %eax
        addl    $15, %eax
        shrl    $4, %eax
        sall    $4, %eax
        subl    %eax, %esp
        leave
        ret
        .size   main, .-main
        .ident  "GCC: (GNU) 4.0.4 20060507 (prerelease) (Debian 4.0.3-3)"
        .section        .note.GNU-stack,"",@progbits



Les 2 premières lignes normal, empilage du Frame Pointer (FP), sauvegarde du pointeur de pile dans FP, mais la troisième ligne est vraiment bizare, pourquoi ce subl alors que je n'ai rien a empilé dans mon prgramme ? A quoi servent les lignes qui suivent ? Mon programme est vide, j'ai bien l'impression que du code ne sert à rien dans tout ça!

Merci pour vos reps.

Bouba

vendredi 26 mai 2006 à 09:15:50 | Re : Désassemblage code C, je ne pige pas !!

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
C'est pour forcer un alignement de ESP sur 16 pour ne pas avoir d'exception sur accès aux registres xmm par exemple.

ciao...
BruNews, MVP VC++
vendredi 26 mai 2006 à 11:14:55 | Re : Désassemblage code C, je ne pige pas !!

bouba

Ok, tu connais un endroit ou je pourrais trouver un peu de doc la dessus, les registres XMM, une explication un peu plus précise pour que je puisse avancer un peu plus loins ensuite ?

Merci.

Bouba

vendredi 26 mai 2006 à 11:17:00 | Re : Désassemblage code C, je ne pige pas !!

BruNews

Administrateur CodeS-SourceS
[ Lien ]

ciao...
BruNews, MVP VC++
vendredi 26 mai 2006 à 11:19:38 | Re : Désassemblage code C, je ne pige pas !!

bouba

Ok, merci.





Cette discussion est classée dans : code, main, eax, pige, esp


Répondre à ce message

Sujets en rapport avec ce message

Assembleur et tableau + linux + bof [ par flocic ] Bonjour, J'ai un petit pb de comprehension, j'ai un programme qui deborde au bout 44 octet  à cause d'un depassement d ela taille du tableau. Mais ce AT&T erreur de compilation etc... [ par maminovadu75 ] Bonjour, j'aimerais me mettre a l'assembleur mais j'ai quelque problème.voici mon code morceau de code pour trier un tableau de int : ( mélange de C/C Probleme d'interuption [ par fresh_meat ] Salut,voila je suis un débutant en asm et j'ai un problème avec int 16h.Voici mon code :TITLE Add and Subtract (AddSubAlt.asm).386.MODEL ESP moins rapide que EAX ? [ par AlexMAN ] Bonjour, En fait, une kestion nous tarode (vecchio et moi) : ya til un intéret a travailler sur ESP par l'intermediaire d'un registre general tel que Un étrange plantage [ par fresh_meat ] Salut,voilà, j'ai un plantage avec un programme dont voici le code :TITLE Addition et soustraction (AddSubAlt.asm).386.MODEL flat,stdcall.STACK 4 Cycles de mov [ par vecchio56 ] Je me demandais si les instructions suivantes étaient équivalentes en termes de performances, ou si certaines d'entres elles demandaient plus de cycle conversion en syntaxe intel [ par marooh ] bonjour, j'ai un code écrit en syntaxe at&t et je veux le rendre en syntaxe intel.si vous pouvez bien m'aider... voici le code Project title : m Proj Intégration code asm avec Dev C++ [ par jean_fabrice ] Salut à tousJ'utilise comme compilateur C++, DevC++ 4.9.8.0. Le problème c'est que je n'arrive pas intégrer du code asm dans mes sources. Il me produi FPU et puissance d'un nombre [ par AlexMAN ] Bonjour, Voila, j'ai 'codé' 2 fonctions permettant de calculer un nombre n a une puissance exp (la fonction est bourrin, cad pas de decoupages de la f Resultat de la vitesse des : Registre, instruction, calcul, et mémoire ! ! ! [ par rebixav ] Voici la liste que j'ai créé : asm : ( inc ) = 0.065 asm : ( and ) = 0.08 asm : ( or ) = 0.08 asm : ( xor ) = 0.08 asm : ( not )


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales