Simule une Interruption en Mode Réel
![[0.9]](../0.9.gif)
Simule une Interruption en Mode Réel. La fonction transfère
le contrôle à l'adresse specifiée par le vecteur d'interruption mode réel
. Le gestionnaire mode réel doit se finir en executant une instruction
IRET.
Appel avec

AX = 0300H
BL = numéro d'interruption
BH = flags
Bit | Signification |
0 | reservé pour raison historiques , doit être zéro |
1-7 | reservé, doit être zéro |
CX = nombre de mots à copier de la pile mode protégé à la pile mode réel
ES:(E)DI = sélecteur:offset de la structure de données mode réel
au format suivant:
Offset | Longueur | Contenu |
00H | 4 | DI ou EDI |
04H | 4 | SI ou ESI |
08H | 4 | BP ou EBP |
0CH | 4 | reservé, doit être zéro |
10H | 4 | BX ou EBX |
14H | 4 | DX ou EDX |
18H | 4 | CX ou ECX |
1CH | 4 | AX ou EAX |
20H | 2 | CPU status flags |
22H | 2 | ES |
24H | 2 | DS |
26H | 2 | FS |
28H | 2 | GS |
2AH | 2 | IP (reservé, ignoré) |
2CH | 2 | CS (reservé, ignoré) |
2EH | 2 | SP |
30H | 2 | SS |
Retourne

si la fonction réussit
Carry flag = 0
ES:(E)DI = sélecteur:offset de la structure de données mode réel
modifiée
si la fonction échoue
Carry flag = 1
AX = code d'erreur
8012H | mémoire linéaire indisponible (pile) |
8013H | mémoire physique indisponible (pile) |
8014H | backing store indisponible (pile) |
8021H | valeur invalide (CX trop grand) |
Notes
- Les programmes 32-bit doivent utiliser ES:EDI pour pointer la structure
de données mode réel. Les programmes 16-bit doivent utiliser
ES:DI.
- CS:IP dans la structure de données mode réel est
ignoré par cette function. Le gestionnaire d'interruption
approprié est appelé, basé sur la valeur passée dans BL.
- Si les champs SS:SP dans la structure de données
mode réel sont à zéro, une pile mode réel sera fournie
par l'hôte DPMI. Autrement, SS:SP mode rée sera fixé
aux valeurs specifiées avant l'appel du gestionnaire
d'interruption.
- Les flags specifiés dans la structure de données
seront poussés sur le cadre de pile IRET mode réel.
Le gestionnaire d'interruption sera appelé avec
les flags d'interruption et de trace à zéro.
- Les valeurs placées dans les emplacements registre
de segment de la structure de données doivent être valides
pour le mode réel;c.a.d. les valeur doivent être des adresses
de paragraphe et pas des sélecteurs.
- Le gestionnaire cible mode réel doit retourner avec la pile
dans le même état qu'avant l'appel . Ceci signifie que le code
mode réel doit basculer les piles tant qu'il s'exécute,mais
doit retourner sur la pile d'ou il a été appelé et doit retourner
avec un IRET.
- Au retour de cette fonction ,la structure de données mode réel
contient les valeurs qui ont été retournées par le gestionnaire
d'interruption mode réel.
- Il est de la responsabilité de l'appelant d'enlever les
paramètres poussés sur la pile mode protégé.