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 :

Un bon tutoriel x86_64


Sujet :

x86 32-bits / 64-bits Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut Un bon tutoriel x86_64
    Salut, je suis un ancien codeur de motorola 68000 (les années 90) et j'aimerais tâter de l'asm sur mon PC, je suis sous ubuntu 64bits, j'ai testé 2 3 petits codes glanés par ci par la et a chaque fois j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/bin/ld: i386 architecture of input file `test.o' is incompatible with i386:x86-64 output
    J'aimerais donc trouver un tuto (En Français de préférence mais je lis aussi l'Anglais) pour mon processeur 64bits.
    Merci de votre aide

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 502
    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 502
    Par défaut
    Bonjour,

    ld est le linker, qui assemble tous tes fichiers objets après compilation, pour former l'exécutable.

    Montre-nous ton code et surtout la commande que tu utilises pour compiler. Il doit probablement manquer quelques flags.

  3. #3
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut
    Ok voila le source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    _start: mov eax, 4
        mov ebx, 1
        mov ecx, BONJ
        mov edx, 8
        int 80h
    BONJ    db  "Bonjour",0
    et voici ce que je tapes en console :
    puis
    j'ajoute que j'ai pas trop compris ce que je tapais en console j'ai récupéré ces instruction sur un tuto, le source encore je comprend.
    Merci de votre aide

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 502
    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 502
    Par défaut
    Tu n'es pas très loin d'avoir réussi. Le format ELF 64 bits diffère légèrement du 32. Il faut donc le spécifier à NASM :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ nasm -f elf64 test.asm
    Tu peux également préciser explicitement que ton code est en 64 bits en ajoutant en tête de listing.

    Enfin, le point d'entrée est bien « _start » mais le symbole n'est pas exporté par défaut. Il faut donc le préciser également dans ton code avec À ce stade, tu devrais pouvoir lier ton fichier objet sans passer par gcc : Tu auras ton résultat, mais ton programme plantera juste après car il manque la fonction de sortie. Ce sera la suite du tutoriel…

    Bon courage.

  5. #5
    Membre éprouvé
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Billets dans le blog
    1
    Par défaut
    Merci Obsidian pour ta réponse, je pense que je vais me documenter sur nasm et sur le compilateur afin de pouvoir suivre le tuto sur le C/Asm.J'ai l'impression que les tutos sur le sujet(Asm+linux) sont de la denrée rare.
    Tchao

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 502
    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 502
    Par défaut
    Ça commence à se faire rare, en effet. Et les livres le sont encore plus.
    Toutefois, « asm linux » dans Google donne de bons résultats.

    Ça nous amène vers ceci, par exemple : http://asm.sourceforge.net/

Discussions similaires

  1. [OpenOffice Base] Connaitriez-vous un bon tutoriel ?
    Par Mut dans le forum Autres SGBD
    Réponses: 9
    Dernier message: 06/05/2010, 16h02
  2. cherche un bon tutoriel d'initiation
    Par jerem721 dans le forum Services Web
    Réponses: 2
    Dernier message: 25/08/2009, 15h46
  3. Utilisation de installBuilder, un bon tutoriel?
    Par dummygreg dans le forum EDI et Outils pour Java
    Réponses: 1
    Dernier message: 23/07/2009, 08h55
  4. [utilisation de CXF] Ou existe-t-il un bon tutoriel ?
    Par caballero dans le forum Services Web
    Réponses: 2
    Dernier message: 06/02/2008, 14h52
  5. Bon tutoriel sur socket
    Par Baptiste Wicht dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 19/12/2005, 19h29

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