Interruption 21h |
Fonction 51h |
Lecture de l'adresse du PSP |
---|---|---|
DOS 2.x |
Description
Cette fonction permet d'effectuer la lecture de l'adresse du PSP.
Entrée
Registre | Valeur ou description |
---|---|
AH | 51h |
Sortie
Registre | Valeur ou description | ||
---|---|---|---|
BX | Ce registre permet d'indiquer l'adresse de segment du PSP. Voici la structure d'un PSP (Prefix Segment Program) : | ||
Déplacement | Longueur | Description | |
00h | 2 octets | Ce champ contient l'instruction assembleur «INT 20h» (DB 0CDh,20h) | |
02h | 2 octets | Ce champ contient l'adresse du dernier segment alloué au programme | |
04h | 1 octet | Ce champ est réservé pour un usage interne ou futur | |
05h | 5 octets | Ce champ contient l'instruction d'appel de l'interruption DOS (INT 21h) | |
0Ah | 4 octets | Ce champ contient l'adresse de l'interruption 22h | |
0Eh | 4 octets | Ce champ contient l'adresse de l'interruption 23h | |
12h | 4 octets | Ce champ contient l'adresse de l'interruption 24h | |
16h | 2 octets | Ce champ contient l'adresse de segment du programme parent | |
18h | 20 octets | Ce champ contient une table des «Handles» permettant la gestion des fichiers par le système d'exploitation | |
2Ch | 2 octets | Ce champ contient une adresse de segment de l'environnement | |
2Eh | 4 octets | Ce champ est réservé pour un usage interne ou futur | |
32h | 2 octets | Ce champ contient la longueur de la table des «Handles» permettant la gestion des fichiers par le système d'exploitation | |
34h | 4 octets | Ce champ contient la Adresse de la table des «Handles» permettant la gestion des fichiers par le système d'exploitation | |
38h | 23 octets | Ce champ est réservé pour un usage interne ou futur | |
50h | 3 octets | Ce champ contient les instructions assembleur «INT 21h» et «RETF» (DB 0CDh, 021h, 0CBh) | |
53h | 9 octets | Ce champ est réservé pour un usage interne ou futur | |
5Ch | 16 octets | Ce champ contient le premier FCB (File Control Block) nommé aussi FCB1 | |
6Ch | 16 octets | Ce champ contient le deuxième FCB (File Control Block) nommé aussi FCB2 | |
80h | 127 octets | Ce champ contient la ligne de commande et la DTA par défaut |
Remarques
- A partir de la version 3 du système d'exploitation DOS, ou utilisera plutôt l'interruption 21h, fonction 62h.
- Dans le langage évolué comme Pascal, les compilateurs QuickPascal de Microsoft, Turbo Pascal et Borland Pascal de Borland mettent l'adresse du PSP dans la variable PrefixSeg de l'unité SYSTEM au lancement du programme; il est donc inutile d'appeler cette fonction.
- Veuillez utilisez cette fonction avec précaution car elle n'est pas mentionnée dans la documentation officielle.
- A partir de la version 3 du système d'exploitation DOS, on peut trouver le nom du programme après le code ASCII 0 de fin d'environnement. Voici un exemple de programme écrit en Turbo Pascal 7 permettant de connaître le chemin complet du programme auquel appartient le PSP :
Références
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 266.
Dernière mise à jour : Jeudi, le 3 mars 2016