Interruption 15h |
Fonction 89h |
Entrée en mode protégé |
---|---|---|
AT et PS/2 |
Description
Cette fonction permet de faire passer le microprocesseur du mode réel au mode protégé.
Entrée
Registre | Description | |
---|---|---|
AH | 89h | |
BH | Ce registre permet d'indiquer le numéro d'interruption pour IRQ0, écrit dans ICW2 du contrôleur d'interruption 1 (doit être divisible par 8, détermine les interruptions IRQ0 à IRQ7). | |
BL | Ce registre permet d'indiquer le numéro d'interruption pour IRQ8, écrit dans ICW2 du contrôleur d'interruption 2 (doit être divisible par 8, détermine les interruptions IRQ8 à IRQ15). | |
ES:SI | Cette paire de registres permet d'indiquer l'adresse (segment:déplacement) de la Table Globale de Descripteur (GDT) devant contenir 8 descripteurs entreposés de la manière suivante : | |
Déplacement | Description | |
00h | Ce champ permet d'indiquer le descripteur temporaire (initialisé avec la valeur 0) | |
08h | Ce champ permet d'indiquer le GDT (Table Globale de Descripteurs) | |
10h | Ce champ permet d'indiquer la table de descripteur des interruptions ou le IDT (Interrupt Descriptor Table) | |
18h | Ce champ permet d'indiquer le segment des données de l'utilisateur (DS) | |
20h | Ce champ permet d'indiquer le segment supplémentaire de l'utilisateur (ES) | |
28h | Ce champ permet d'indiquer le segment de la pile de l'utilisateur (SS) | |
30h | Ce champ permet d'indiquer le segment de codes de l'utilisateur (CS) | |
38h | Ce champ permet d'indiquer le segment de code du BIOS en ROM. |
Sortie
Registre | Description | ||
---|---|---|---|
CF | Ce registre permet de retourner l'état de l'opération : | ||
Valeur | Description | ||
0 | Exécution correcte, CPU est en mode protégé, dans ce cas les registres ont les valeurs suivantes: | ||
Valeur | Description | ||
AH | 00h | ||
CS | Ce registre permet d'indiquer un sélecteur spécifier par l'utilisateur | ||
DS | Ce registre permet d'indiquer un sélecteur spécifier par l'utilisateur | ||
ES | Ce registre permet d'indiquer un sélecteur spécifier par l'utilisateur | ||
SS | Ce registre permet d'indiquer un sélecteur spécifier par l'utilisateur | ||
1 | Erreur, CPU forcément en mode réel, dans ce cas AH=0FFh |
Remarques
- L'utilisateur doit toujours initialiser les 7 premiers descripteurs tandis que le huitième est rempli par le BIOS en ROM afin qu'elle puisse effectuer sa propre exécution. Le programme appelant peut naturellement utiliser ces 8 descripteurs.
- Cette fonction n'est pas prise en charge sur les modèles 25 et 30 des micro-ordinateurs PS/2 de l'entreprise IBM.
- Le fonctionnement du microprocesseur en mode protégé a un comportement très différent du mode réel. En autre, une demande d'autorisation est nécessaire pour effectuer les accès mémoire.
- Cette fonction doit être appeler que si vous avez des connaissances sérieuses dans le domaine du mode protégé car un plantage de la machine peut facilement avoir lieu en exploitant cette fonction.
Dernière mise à jour : Jeudi, le 3 mars 2016