Section courante

A propos

Section administrative du site

Introduction

L'extension de fichiers «.COM» et un format de fichier exécutable extrêmement simple utilisé pour le système d'exploitation DOS. Ainsi, si vous ne voulez pas vous inquiéter de la réinitialisation des symboles de la lecture des entêtes de fichiers. Cette simplicité est à un inconvénient, c'est que les extensions de fichiers .COM limite énormément les possibilités de l'exécutable.

Spécification

Spécification Description
Type Exécutable
Auteur CP/M, DOS

Format du fichier

Les extensions de fichiers .COM étaient utilisés par le système d'exploitation DOS (MS-DOS, PC-DOS, DR-DOS, FreeDOS,...) sont des fichiers binaires bruts de code machine et il n'y a pas de données d'entête. En outre, les extensions de fichiers .COM sont limités à la taille d'un segment (un segment en mode réel est de 64 Ko), moins 256 octets. Lorsqu'un fichier d'extension .COM est chargé, il est supposé que tout le code et toutes les données correspondent à un segment et qu'il est chargé pour décaler à la l'adresse 100h. Le DOS crée et entrepose une structure d'informations, appelée PSP (préfixe de segment de programme), commençant au déplacement 0 et se terminant juste avant le déplacement 100h. Le PSP est fait juste avant de démarrer le programme de format .COM. Les fichiers COM se terminent généralement par une instruction RET, une instruction INT 20h ou les instructions MOV AH, 4Ch et INT 21h. Le système d'exploitation démarre le programme COM à l'aide d'une instruction CALL, de sorte que l'instruction RET retourne au système d'exploitation, autorisant tout nettoyage (comme le redémarrage de l'interpréteur de commande).

Processus de chargement

Lors du chargement du fichier d'extension .COM, vous devez charger un PSP dans un emplacement de mémoire 0h, charger les données binaires à l'adresse mémoire 0100h, définir les registres DS et ES pour qu'il pointe vers le début du fichier avec une organisation 0100h et sauter au début, avec un déplacement de 0100h.

Code source

Voici des exemples de code source d'utilitaires pour manipuler les .COM :

Lien Langage de programmation Description Projet Syntaxe
COM2EXE.PAS Free Pascal, Turbo Pascal Cette commande permet de convertir un fichier «.COM» en fichier «.EXE» DEV-COOLS COM2EXE
HEXCOM.PAS Free Pascal, Turbo Pascal Cette commande permet de charger un HEX (fichier de vidage hexadécimal) et en fait un fichier de format «.COM». DEV-COOLS HEXCOM


Dernière mise à jour : Samedi, le 6 janvier 2018