Ecriture d'un *.com 16 bits

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 934 fois - Téléchargée 31 fois

Contenu du snippet

Aucune description n'est fournie pour ce projet

A voir également

Ajouter un commentaire Commentaires
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
12
Je sais que ce sont surtout les fonctions de l'interruption 21h qui sont émulées. Les fonctions considérées comme dangereuses ne le sont que pour le système émulant le DOS. Elles ne le sont pas sous le vrai DOS. Le vrai DOS donne toute la puissance de la machine à l'application. Ce n'est pas le cas avec le DOS émulé.
Messages postés
257
Date d'inscription
dimanche 22 août 2004
Statut
Membre
Dernière intervention
29 septembre 2010
1
non les accès aux interruptions -emulées elles aussi- sont autorisée, sauf pour certaines fonctions des "dangereuses" comme la 13h (accès disques), certaines instruction CPU sont aussi interdites (lgdt...) ainsi que l'accès au cr0, cr1...
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
12
vinc1008881 >> Les fichiers .com ne sont pas des exécutables comme les autres. Ils n'ont pas d'en-tête. Le premier élément du fichier est un JMP vers une adresse relative. J'avais beaucoup travaillé sur ce genre d'exécutables dans les années 80 sous MS-DOS. Ils s'accaparent toute la mémoire disponible dans le système. Ils utilisent la pile du système. Bref, plein d'inconvénients. C'est pour cela que les fichiers .exe ont été inventés.
Le DOS 16 bits virtuel sous XP ou autres, n'est pas un vrai DOS. Beaucoup de fonctionnalités sont interdites. L'accès aux ports d'entrée sortie, l'acces aux interruptions etc. Mêmes certains programmes ne faisant pas appel à ces fonctionnalités refusent de tourner en mode virtuel ou plantent sans raison apparente. Ce n'est pas facile d'émuler un vrai DOS car pour cela il faut lui laisser l'accès à toutes les ressources du système.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
Exact, sur un OS full 32 c'est le système qui émule un environnement 16 bits.
Ceci dit, bien d'accord que ça ne rime plus à rien de perdre son temps avec cela, obsolète depuis des lustres.
Messages postés
257
Date d'inscription
dimanche 22 août 2004
Statut
Membre
Dernière intervention
29 septembre 2010
1
Ce programme écrit un simple *.com ;-) Voila pour les gros boutoneux qui tape du clavier H24 bah peu etre que ma source n'a pas d'interet encore une fois >> ça dépend du compilateur non? , gcc compilerait ça en 32 bits je crois.

Pour ceux qui sont fan du 16 bit, il y a tcc qui compile en 16 bits. Pour moi les fichier .com sont des excutables comme les autres, mis à part que la plupart du temps il n'y a pas d'entete, et leur execution ne se fait pas par MS-DOS en tout cas pas sur XP. MSDOS n'existe plus, et c'est le noyau de Win qui emule un environement 16 bits dans lequel ces executables peuvent fonctionner virtuellement.
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.