Interruption 21h |
Fonction 4Bh, Sous-fonction 05h |
Exécute un fichier personnalisé |
---|---|---|
DOS 5.0+, OS/2, Windows NT |
Description
Cette fonction permet de lancer l'exécution d'un fichier personnalisé.
Entrée
Registre | Valeur ou description | |||
---|---|---|---|---|
AX | 4B05h | |||
DS:DX | Cette paire de registres permet d'indiquer l'adresse du bloc de paramètre: | |||
Déplacement | Longueur | Description | ||
00h à 01h | 2 octets (1 mot) | Ce champ est réservé pour une utilisation interne ou future. | ||
02h à 03h | 2 octets (1 mot) | Ce champ contient le type d'exécution: | ||
Code | Description | |||
1 | Ce code indique un programme exécutable | |||
2 | Ce code indique un recouvrement | |||
04h à 07h | 4 octets (double mot) | Ce champ contient un pointeur sur une chaîne de caractères ASCIZ du nom du programme ou du recouvrement | ||
08h à 09h | 2 octets (1 mot) | Ce champ contient une adresse de segment PSP du programme exécutable ou du recouvrement | ||
0Ah à 0Dh | 4 octets (double mot) | Ce champ contient un point d'entrée dans le programme ou le recouvrement | ||
0Eh à 11h | 4 octets (double mot) | Ce champ contient la taille du programme ou du recouvrement avec le PSP |
Sortie
Registre | Valeur ou description | |||
---|---|---|---|---|
FC | Ce registre de drapeau de retenue permet d'indiquer le résultat de l'opération : | |||
Valeur | Description | |||
0 | Cette valeur permet d'indiquer que l'opération a été un succès | |||
1 | Cette valeur permet d'indiquer une erreur, dans ce cas : | |||
Registre | Description | |||
AX | Ce registre permet d'indiquer le code d'erreur : | |||
Valeur | Description | |||
1 | Cette erreur permet d'indiquer que le numéro de la fonction n'est pas valide | |||
2 | Cette erreur permet d'indiquer que le fichier est introuvable | |||
3 | Cette erreur permet d'indiquer que le chemin est introuvable | |||
5 | Cette erreur permet d'indiquer que l'accès est refusé | |||
8 | Cette erreur permet d'indiquer que la mémoire disponible est insuffisante | |||
10 | Cette erreur permet d'indiquer que l'environnement est incorrecte | |||
11 | Cette erreur permet d'indiquer le format est invalide |
Remarques
- Avant qu'un programme utilise l'interruption 21h, fonction 4Bh pour exécuter un autre programme, il doit libérer toute la mémoire qu'il n'utilise pas réellement avec un appel à l'interruption 21h, fonction 4Ah, en passant l'adresse de segment de sa propre PSP et le nombre de paragraphes à conserver.
- En règle générale, tous les descripteurs actifs du programme parent sont hérités par le programme enfant, bien que le parent puisse empêcher cette situation dans le DOS 3.0 et les versions ultérieures en définissant le bit d'héritage à l'ouverture du fichier ou du périphérique. Toute redirection de l'entrée et/ou de la sortie standard dans le processus parent affecte également le processus enfant.
- Le bloc d'environnement peut être utilisé pour transmettre des informations au processus enfant. Si le pointeur du bloc d'environnement dans le bloc de paramètres est nul, le programme enfant hérite d'une copie exacte de l'environnement du parent. Dans tous les cas, l'adresse de segment de l'environnement de l'enfant se trouve au déplacement 002Ch dans la PSP de l'enfant.
- Après le retour de l'appel de fonction EXEC, le type de terminaison et le code de retour du programme enfant peuvent être obtenus avec l'interruption 21h, fonction 4Dh.
Références
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 254 à 257.
Dernière mise à jour : Jeudi, le 3 mars 2016