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 :

nasm compilation 32bits sur du 64


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    583
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 583
    Points : 265
    Points
    265
    Par défaut nasm compilation 32bits sur du 64
    Bonjour,

    Voulant faire simple, je voudrais compiler un bout de code asm en 32bit sur un linux 64. Je fais comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ nasm -f elf32 msgbox.asm -o msgbox.o
    La c'est ok, mais au link:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ld msgbox.o -o msgbox 
    ld: architecture i386 du fichier d'entrée « msgbox.o » est incompatible avec la sortie i386:x86-64
    J'ai tenté avec gcc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    gcc -m32 msgbox.o -o msgbox
    msgbox.o: dans la fonction « _start »:
    msgbox.asm:(.text+0x0): définitions multiples de « _start »
    /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/crt1.o:(.text+0x0): défini pour la première fois ici
    /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/crt1.o: dans la fonction « _start »:
    (.text+0x18): référence indéfinie vers « main »
    collect2: error: ld returned 1 exit status
    Si quelqu'un a une idée ..

    Merci

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 108
    Points
    43 108
    Par défaut
    Sans avoir le code source, pas évident.

    Utilises-tu des bibliothèques dans le ;asm ? sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gcc -m32 msgbox.o -o msgbox -nostdlib
    J'ai jamais assemblé de 64 bits sous Linux, donc c'est la théorie, en 32 bits ok.

    Par contre il te faut le point d'entrée _start dans l'asm.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SECTION .text
    GLOBAL _start
    _start:
    ; ton code
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    583
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 583
    Points : 265
    Points
    265
    Par défaut
    [QUOTE=chrtophe;8065540]Sans avoir le code source, pas évident.

    Utilises-tu des bibliothèques dans le ;asm ? sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gcc -m32 msgbox.o -o msgbox -nostdlib

    Bien vu!

    Merci

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

Discussions similaires

  1. Forcer compilation 32bits sur Vista64 via VS 2008 Express
    Par teska dans le forum Windows Forms
    Réponses: 11
    Dernier message: 05/12/2009, 21h15
  2. Compiler une application 32bit sur Windows 64bit
    Par will97 dans le forum VB.NET
    Réponses: 3
    Dernier message: 27/09/2009, 01h23
  3. erreur de compile servlet sur unix
    Par roninou dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/11/2006, 17h21
  4. Oracle 8.1.7.3 32bits sur Aix 5.2 64 bits
    Par MichelGarcia dans le forum Oracle
    Réponses: 3
    Dernier message: 18/10/2006, 12h23
  5. Compiler SOCI sur MSVS 6.0
    Par gmartintin dans le forum MFC
    Réponses: 2
    Dernier message: 27/10/2005, 14h57

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