les fichiers exécutables

les fichiers exécutables - ASM - Programmation

Marsh Posté le 08-04-2004 à 08:16:42    

Les fichiers exécutable sont dépendant du OS, mais dans ce cas, est-ce qu'un exécutable "propre" sans modifications par le linker pour le OS pourrait s'exécuter autant sous linux que sous windows et n'importe quel OS sous un processeur x86 ?
 
Et quelqu'un aurait-il un site ou des informations sur comment faire des exécutable "propre" ? car si quelqu'un fait un OS, il doit passer nécessairement par cette voie ? puisque les exe propriétaires des OS ne fonctionnerait plus ? un peu comme le code du MBR lui c'est du code "propre" ?
 
Merci  :)

Reply

Marsh Posté le 08-04-2004 à 08:16:42   

Reply

Marsh Posté le 08-04-2004 à 14:52:36    

me suis toujours posé la question aussi :
 
si on retire tout ce qui est appel au api (MessageBox, CreateWindow,...)
qu'on ne tient pas compte du header du fichier .exe
 
bref on se retrouve uniquement avec des mov, call, ret,...
 
normalement ca doit tourner sur tout les os non ?
 
jai oublié qqch?

Reply

Marsh Posté le 08-04-2004 à 14:57:00    

red faction a écrit :


si on retire tout ce qui est appel au api (MessageBox, CreateWindow,...)
qu'on ne tient pas compte du header du fichier .exe


ben chaque OS impose un header pour qu'il puisse reconnaitre un exe, donc si cet exe ne possède aucun header, l'OS ne pourra pas le lancer et le reconnaitra que comme une suite d'octets [:sinclaire]
le cross plateformes c'est bien beau, mais faut pas oublier que la compilation sert justement à rendre un programme "lançable" par l'OS cible hein ;)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-04-2004 à 14:58:11    

"qu'on ne tient pas compte du header du fichier .exe "
"ben chaque OS impose un header pour qu'il puisse reconnaitre un exe"
 
oui c ce que je disait

Reply

Marsh Posté le 08-04-2004 à 15:01:38    

ben ça "peut" tourner sur tous les OS, mais il faut pas accéder au matériel, car si Windows permet d'accéder au matériel (si on utilise un assembleur qui va bien, genre nasm, ou alors utiliser un linker 16 bits avec masm32), Linux l'interdit, et le programme ne tournera pas :/


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-04-2004 à 15:03:43    

ouais bon en bref a part avoir mit des valeurs dans les registres quon ne saura pas consulter ca sert pas a grand chose :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed