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

C++ Discussion :

Compilation d'un programme C++ / Assembleur


Sujet :

C++

  1. #1
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut Compilation d'un programme C++ / Assembleur
    Bonjour,

    Je possède un fichier C++ qui contient de l'assembleur. Le problème c'est que je ne sais pas comment le compiler à l'aide de g++ (version 4.1.0). Voici le fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    #include <iostream>
     
     
    int main( int argc, char ** argv )
    {
            int a=10, b;
            asm ("movl %1, %%eax; 
                  movl %%eax, %0;"
                 :"=r"(b)        /* output */
                 :"r"(a)         /* input */
                 :"%eax"         /* clobbered register */
                 );
     
    	return EXIT_SUCCESS;
    }
    Merci d'avance à ceux qui pourront m'aider


    Nico.
    Athlon 6000+ Dual Core & GeForce 8600 GT -- Ubuntu Gutsy

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Et quel est le problème exactement ?

  3. #3
    Membre averti Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Points : 356
    Points
    356
    Par défaut
    Citation Envoyé par nicolas66
    Le problème c'est que je ne sais pas comment le compiler à l'aide de g++ (version 4.1.0).

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    J'avais bien lu, mais ça ne nous avance pas plus que ça. Un fichier qui contient de l'assembleur se compile comme n'importe quelle autre fichier source, donc je ne vois pas où se situe le problème.

  5. #5
    Membre averti Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Points : 356
    Points
    356
    Par défaut
    Ben soit il ne sait pas ça et donc il cherche dans le vent. Soit il le sait, et tout ce qu'il cherche à savoir c'est comment on compile, et j'ai bien l'impression que ce soit ça le problème.

  6. #6
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut
    Arf désolé, je pense que je n'ai pas été assez précis dans mon premier post . En fait, j'ai essayé de compiler l'exemple ci-dessus par la traditionnelle commande : 'gcc test.cpp -o test'. Malheureusement, le compilateur me renvoyait les erreurs suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    test.cpp:7: error: missing terminating " character
    test.cpp:8: error: missing terminating " character
    test.cpp: In function 'int main(int, char**)':
    test.cpp:8: error: expected string-literal before 'movl'
    test.cpp:9: error: expected primary-expression before ':' token
    test.cpp:9: error: expected `;' before ':' token
    En tâtonnant un peu, j'ai essayé de corriger ces erreurs en rajoutant des " pour que ca passe et j'ai fini par obtenir ce programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    #include <iostream>
     
     
    int main( int argc, char ** argv )
    {
            int a=10, b;
            asm ("movl %1, %%eax;"
                 "movl %%eax, %0;"
                 :"=r"(b)        /* output */
                 :"r"(a)         /* input */
                 :"%eax"         /* clobbered register */
                 );
     
    	return EXIT_SUCCESS;
    }
    Ca me semble bizarre d'avoir eu à corriger le programme d'origine car je l'avais trouvé sur un post du forum.
    Athlon 6000+ Dual Core & GeForce 8600 GT -- Ubuntu Gutsy

  7. #7
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    gcc acceptait les chaînes qui s'étallaient sur plus d'une ligne dans le passé. Il y a trois ou quatre ans, ils ont sorti une release qui avertissait, celle d'après a généré des erreurs.

    Quand tu as des problèmes, c'est beaucoup plus simple de dire ce qui ne va pas plutôt que de laisser deviner... on n'a pas toujours le bon compilateur sous la main pour reproduire et le message d'erreur peut aider les autres même s'il ne t'a pas suffit.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  8. #8
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Le C++ se compile avec g++, qui lie automatiquement la bibliothèque standard et d'autres choses du style.
    Il est inutile dans ton cas d'inclure <iostream>
    Boost ftw

  9. #9
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut
    Ouep mais c'est bon j'ai réglé le problème tout seul en fait . Pour le header, je l'ai simplement mis par réflexe dans cet exemple.
    Athlon 6000+ Dual Core & GeForce 8600 GT -- Ubuntu Gutsy

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

Discussions similaires

  1. Les outils que vous utilisez pour programmer en assembleur
    Par Smortex dans le forum x86 32-bits / 64-bits
    Réponses: 36
    Dernier message: 15/08/2022, 11h28
  2. Réponses: 20
    Dernier message: 28/01/2006, 11h27
  3. aide sur la compilation d'un programme console
    Par angelo2 dans le forum MFC
    Réponses: 6
    Dernier message: 18/10/2005, 07h44
  4. compilation d'un programme à partir d'un autre programme??
    Par Naruseb dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/08/2005, 15h05

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