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 16-bits Assembleur Discussion :

[gcc] Compiler à partir d'un .asm en .com et .exe


Sujet :

x86 16-bits Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Par défaut [gcc] Compiler à partir d'un .asm en .com et .exe
    Bonjour

    voila j'ai un problème pendant la compilation j'utilise gcc sous Windows 7.
    Donc je créer un .asm avec notepad++
    le problème c'est que je me rapelle plus comment on compile donc j'ai taper ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gcc monprog.asm -o monprog .o
    et ca me donne cette erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     file format not recognized; treating as linker script
    est ce que qu'elle qu'un peut me rapeller comment compiler a partir d'un .asm en .com et .exe

    merci d'avance

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Bonjour,

    GCC est un compilateur C. Tu peux utiliser as ou gas s'ils sont disponibles dans la suite que tu utilises. Sinon, il te faut un assembleur, tel que nasm.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Par défaut
    Oui, je suis désolé. Je me suis rappelé un peu comment je compilais. C'était bien avec nasm. Je crois que c'était :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nasm -f win32 monprog.asm
     
    ld test.o -o test.com
    Mais est-ce que tu pourrais me rappeler la compilation en 16 bits .com et .exe et en 32 bits si celle ci-dessus est fausse ?

    Merci de ta réponse.

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Mai 2009
    Messages : 36
    Par défaut
    Bonjour france38,

    Citation Envoyé par france38 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nasm -f win32 monprog.asm
     
    ld test.o -o test.com
    Mais est-ce que tu pourrais me rappeler la compilation en 16 bits .com et .exe et en 32 bits si celle ci-dessus est fausse ?
    L'exemple que tu viens de donner ne permet pas de faire des exécutables MS-DOS. Un programme MS-DOS est un programme 16 bits. Mais le format "win32" (en fait le format COFF) est, comme son nom l'indique, conçu pour Windows, et le "32" signifie que c'est un format exclusivement 32 bits. Pour faire des programmes en .com, rien de plus simple, il suffit de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nasm -f bin monprog.asm -o monprog.com
    Voilà.

    Tommy

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Par défaut
    ok merci bien pour ta réponse

    donc si j'ai bien comprit si je veux créer un .exe 32 bits la solution que j'ai donnée marche si je fais comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    nasm -f win32 monprog.asm
     
    ld monprog.o -o monprog.exe

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Mai 2009
    Messages : 36
    Par défaut
    Citation Envoyé par france38 Voir le message
    Donc si j'ai bien compris, si je veux créer un .exe 32 bits la solution que j'ai donnée marche si je fais comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    nasm -f win32 monprog.asm
     
    ld monprog.o -o monprog.exe
    Oui, c'est bien cela.

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

Discussions similaires

  1. Compiler à partir de la ligne de commande
    Par mokh7 dans le forum Débuter
    Réponses: 6
    Dernier message: 02/06/2008, 19h06
  2. [JSE6] Compiler à partir d'une String
    Par Mucho dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 26/07/2007, 10h14
  3. [GCC] compilation de plusieurs fichier.o
    Par jobe dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 25/04/2007, 12h56
  4. GCC/compilation de programme socket
    Par hammag dans le forum GCC
    Réponses: 1
    Dernier message: 11/10/2006, 10h10
  5. Allouer un segment de mémoire avec "GNU GCC Compiler&qu
    Par damien99 dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 22/06/2006, 23h18

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