Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur > Programmation d'OS
Programmation d'OS Programmation de systèmes d'exploitation
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 05/08/2012, 13h08   #1
b52x_med
Invité de passage
 
Homme
Analyse système
Inscription : 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 : 0
Points : 0
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.
b52x_med est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2012, 15h13   #2
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

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

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 071
Points : 11 071
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.

Citation:
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.
Obsidian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2012, 18h04   #3
b52x_med
Invité de passage
 
Homme
Analyse système
Inscription : 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 : 0
Points : 0
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 !
b52x_med est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2012, 18h16   #4
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

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

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 071
Points : 11 071
Citation:
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++.

Citation:
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.
Obsidian est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h03.


 
 
 
 
Partenaires

Hébergement Web