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

Programmation d'OS Assembleur Discussion :

LINK vers un fichiers binaire pure ?


Sujet :

Programmation d'OS Assembleur

  1. #1
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut LINK vers un fichiers binaire pure ?
    bonjour :
    j'ai un petit système .je veux compiler ces fichiers c++ et asm en un fichier binaire pure executable directement exécute par un processeur x86 .

    mais le problème ,c'est que je ne trouve pas le fameux link qui peut faire cette tache .
    microsoft linker ,borland tlink et meme jwlink ne marche pas . ils produisent que des fichiers win32.exe et .elf .

    j'ai un vieux outil c'est le microsoft segmented linker 1993 . mais celui ici ne peut linker des fichiers objets produits par un compilateur vc++ 2005 .en plus il ne prends en charge plusieurs instruction des processeurs pentium. je reçois des erreurs .

    y a t'il une solution ??

    note :mes fichiers .asm sont compilable avec microsoft macro assembler.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 620
    Points
    23 620
    Par défaut
    Bonjour,

    Les exécutables Win32, DOS, ELF ou autres sont certes des fichiers composites, qui contiennent différentes sections, etc. mais ces sections contiennent au final du code en langage machine qui, lui, est exécuté directement par le micro-processeur. Il n'y a plus de langage intermédiaire à ce stade, si ce n'est une petite édition des liens lorsque tes exécutables font appel à des DLL, ce qui est pour ainsi dire toujours le cas.

    Si tu veux obtenir le code pur dénué de tout format de fichier additionnel, soit tu compiles un *.COM, mais ça commence à être franchement vieux, soit tu utilises le format « bin » de NASM, par exemple.

    j'ai un vieux outil c'est le microsoft segmented linker 1993 . mais celui ici ne peut linker des fichiers objets produits par un compilateur vc++ 2005 .en plus il ne prends en charge plusieurs instruction des processeurs pentium. je reçois des erreurs .

    y a t'il une solution ??
    Oui : mettre ses outils à jour. Oublie MASM, et passe NASM ou FASM, qui ont le bon goût d'être libres, d'être à jour et de fonctionner sur tous les systèmes d'exploitation.

  3. #3
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    En effet : je n'ai besoin de nasm que pour écrire un petit code qui fait appel à une fonction c . car à mon avis ce serai une perte de temps si je fais tout un système en nasm .

    alors la question qui se pose :

    même si je passe à NASM ,ya t'il une solution pour linker tous les fichier obtenu .obj obtenu avec nasm, avec ceux obtenu avec un compilateur c++ ?

    merci de me répondre !

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 620
    Points
    23 620
    Par défaut
    En effet : je n'ai besoin de nasm que pour écrire un petit code qui fait appel à une fonction c.
    En théorie, tu n'en as même pas besoin. Si c'est juste pour faire un petit bout de code isolé, tu dois pouvoir écrire de l'assembleur inline directement dans ton code C ou C++.

    même si je passe à NASM ,ya t'il une solution pour linker tous les fichier obtenu .obj obtenu avec nasm, avec ceux obtenu avec un compilateur c++ ?

    Oui, avec un linker et, en principe, il est fourni avec tes compilateurs. Si ton compilateur C++ est déjà capable d'utiliser des bibliothèques statiques, alors il devrait être capable d'utiliser ce que produit ton assembleur. Si tu utilises un IDE, regarde dans les options de compilation. Tu devrais finir par trouver la ligne de commande qui correspond à ton linker, mais même sans cela, tu dois avoir un moyen de spécifier les bibliothèques externes à utiliser.

Discussions similaires

  1. image de classe vers un fichier binaire
    Par 33skamal dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/07/2015, 14h20
  2. Réponses: 2
    Dernier message: 28/10/2010, 23h01
  3. Réponses: 6
    Dernier message: 04/06/2008, 10h48
  4. Problème d'écriture vers fichier binaire
    Par Mr Light dans le forum C++
    Réponses: 6
    Dernier message: 27/02/2008, 21h25
  5. Réponses: 2
    Dernier message: 26/04/2004, 13h55

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