IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

Lier du code C optimisé et du code ASM non optimisé


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 17
    Points : 6
    Points
    6
    Par défaut Lier du code C optimisé et du code ASM non optimisé
    Bonjour,

    Il ya un truc que je comprend pas avec les codes executables.

    Par exemple avec GCC, quand on compile du code C mais qu'on spécifie une option d'optimisation, genre -02, le programme fonctionne bien, malgré le fait qu'ils soit lié à des fonctions qui ne sont pas forcément optimisé ( printf etc ), c'est à dire que la méthode pour récupérer les arguments n'est plus la même ( le fameux push ebp - mov ebp,esp - pop ebp n'est plus de mise ).

    Ainsi, quand je fais ma petite routine en assembleur, que je la compile dans un fichier objet et que je la lie avec un fichier object C, si je ne met pas d'option d'optimisation, ma routine marche très bien car elle utilise la méthode précédemment décrite. Par contre, dès que je met l'option d'optimisation -02 dans gcc, je me retrouve avec une routine qui fait n'importe quoi.

    Ma question c'est : comment fait le linker pour lier les fonctions de la librairie standard au code qu'on a compilé en C et faire en sorte que ca marche meme avec des optimisations. Est-il possible de linker du code C optimisé avec du code ASM non-optimisé sans rien changer au code ASM ?

    Vous me suivez ?

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    pour info je compile mon code C avec GCC et mon code ASM avec GAS.
    Je lie le tout avec GCC *.o -o test.exe

    bosse sur x86.

  3. #3
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    Ce sujet est traité dans le chapitre 4.7 de l'excellent article de Beuss : http://beuss.developpez.com/tutoriels/pcasm/
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Super, la solution a l'air d'etre dans les attributs d'appels ( stdcall etc... ). Je ne m'en serais jamais douté !

    Merci bien !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Stratégie pour OCX, affichage code ascii ou image du code ascii désiré
    Par ProgElecT dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 04/08/2007, 14h00
  2. Lier un dataSource à une GridView par le code
    Par boullery dans le forum ASP.NET
    Réponses: 14
    Dernier message: 27/07/2007, 10h23
  3. Génération de code or not génération de code ?
    Par runn2 dans le forum Rational
    Réponses: 10
    Dernier message: 24/04/2007, 19h11
  4. Réponses: 3
    Dernier message: 16/09/2006, 18h08
  5. code key de F5 : 116 / code key de 't' :116
    Par mappy dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 10/08/2006, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo