Article de reference

Exécutable DOS MZ

[[.exe]] , [[COM file|.com]] , [[Dynamic-link library|.dll]] , [[.sys]] "},"mime":{"wt":""},"uniform type":{"wt":""},"owner":{"wt":""},"magic":{"wt":" 4D 5A ( MZ in [[ASCII]])"}...

format de fichier exécutable utilisé pour les fichiers .EXE sous les systèmes d'exploitation DOS et Windows .

Le fichier peut être identifié par la chaîne ASCII « MZ » ( hexadécimal : 4D 5A) au début du fichier (le « nombre magique »). « MZ » sont les initiales de Mark Zbikowski , l’un des principaux développeurs de MS-DOS .

Le format MZ DOS est plus récent que le format COM et s'en distingue. Son en- tête contient des informations de relocalisation permettant de charger plusieurs segments à des adresses mémoire arbitraires, et il prend en charge les exécutables de plus de Ko ; toutefois, ce format impose des limites de mémoire relativement faibles. Ces limites ont été contournées ultérieurement grâce aux extendeurs DOS .

préfixe de segment de programme .

Les fichiers EXE comportent généralement des segments distincts pour le code, les données et la pile. L'exécution du programme commence à l'adresse 0 du segment de code , et le registre pointeur de pile est initialisé avec la valeur indiquée dans l'en-tête (par exemple, si l'en-tête spécifie une pile de 512 octets, le pointeur de pile est initialisé à 200h). Il est possible, si nécessaire, de se passer d'un segment de pile séparé et d'utiliser directement le segment de code comme pile.

Le registre DS ( segment de données ) contient normalement la même valeur que le registre CS (segment de code) et n'est pas chargé avec l'adresse réelle du segment de données lors de l'initialisation d'un fichier EXE ; il est nécessaire que le programmeur le configure lui-même, généralement via les instructions suivantes :

API DOS 1.x d'origine , il était également nécessaire que le registre CS pointe vers le segment contenant le PSP à la fin du programme ; cela se faisait via les instructions suivantes :

API DOS 2.x a introduit une nouvelle fonction de terminaison de programme, INT 21h Fonction 4Ch, qui ne nécessite pas la sauvegarde de l'adresse du segment PSP au début du programme, et Microsoft a déconseillé l'utilisation de l'ancienne méthode DOS 1.x.

Compatibilité

Les fichiers exécutables MZ DOS peuvent être lancés depuis les systèmes d'exploitation DOS et Windows 9x . Les systèmes d'exploitation Windows NT 32 bits peuvent les exécuter via leur machine virtuelle DOS intégrée (bien que certains modes graphiques ne soient pas pris en charge). Les versions 64 bits de Windows ne peuvent pas les exécuter. DOSBox et DOSEMU constituent des alternatives pour lancer ces fichiers .

Les exécutables MZ DOS peuvent être créés par des éditeurs de liens , comme Digital Mars Optlink , Open Watcom ; de plus, FASM peut les créer directement.