Interruption 15h |
Fonction 87h |
Copie de la mémoire étendue |
AT et PS/2 |
|
Description
Cette fonction permet d'effectuer le copier un bloc de mémoire en mémoire étendue.
Entrée
Registre |
Description |
AH |
87h |
CX |
Ce registre permet d'indiquer le nombre de mots à transférer |
ES:SI |
Cette paire de registres permet d'indiquer l'adresse de la table globale de descripteur ou la GDT (Global Descriptor Table) |
Sortie
Registre |
Description |
CF |
Ce registre permet de retourner l'état de l'opération: |
0 |
L'opération s'est correctement déroulé, dans ce cas AH=00h |
1 |
Une erreur s'est produit, dans ce cas le registre AH=Code d'erreur: |
00h |
Tous va bien |
01h |
Cas d'erreur de parité de la RAM |
02h |
Exception a été déclenchée |
03h |
Accès à la ligne 20 du bus d'adresse est incorrect |
80h |
Commande invalide (PC, PC Junior) |
86h |
Fonction non supportée (XT, PS/2 modèle 30) |
Remarques
- La mémoire conventionnelle se trouve à des adresses inférieures à la limite de 640 Ko et est utilisée pour l'exécution du système d'exploitation
DOS et de ses programmes d'application. La mémoire étendue se trouve à des adresses supérieures à 1 Mo et n'est accessible que par un
microprocesseur 80286 ou 80386 fonctionnant en mode protégé. Jusqu'à 15 Mo de mémoire étendue peuvent être installés dans un
micro-ordinateur IBM PC/AT ou compatible.
- La structure de données GDT (Global Descriptor Table) utilisé par cette fonction doit être configuré de la manière suivante :
Octet(s) |
Description |
00h à 0Fh |
Ces champs sont réservés. Ils doivent toujours contenir des 0. |
10h à 11h |
Ce champ permet d'indiquer la longueur de segment en octets (2 * CX - 1 ou plus). |
12h à 14h |
Ce champ permet d'indiquer l'adresse source en 24 bits. |
15h |
Ce champ permet d'indiquer l'octet de droits d'accès (toujours 93h). |
16h à 17h |
Ces champs sont réservés. Ils doivent toujours contenir des 0. |
18h à 19h |
Ce champ permet d'indiquer la longueur de segment en octets (2 * CX - 1 ou plus). |
1Ah à 1Ch |
Ce champ permet d'indiquer l'adresse de destination de 24 bits. |
1Dh |
Ce champ permet d'indiquer l'octet des droits d'accès (toujours 93h). |
1Eh à 2Fh |
Ces champs sont réservés. Ils doivent toujours contenir des 0. |
Le tableau est composé de 6 descripteurs de 8 octets à utiliser par le microprocesseur en mode protégé.
Les quatre descripteurs des déplacements 00h à 0Fh et 20h à 2Fh sont remplis par le BIOS en ROM avant le changement de mode de microprocesseur.
- Les adresses utilisées dans le tableau des descripteurs sont des adresses linéaires (physiques) de 24 bits dans l'intervalle 000000h à FFFFFFh sans segments et de
déplacement avec l'octet le moins significatif à l'adresse la plus basse et l'octet le plus significatif à l'adresse la plus élevée.
- Le déplacement de bloc est effectué avec des interruptions désactivées; ainsi, l'utilisation de cette fonction peut interférer avec le fonctionnement des programmes de
communication, des pilotes de réseau ou d'autres logiciels reposant sur une maintenance rapide des interruptions matérielles.
- Les programmes et pilotes accédant à la mémoire étendue avec cette fonction ne peuvent pas être exécutés dans la boite de compatibilité du système d'exploitation OS/2.
- Cette fonction n'est pas prise en charge sur les modèles 25 et 30 des micro-ordinateurs PS/2 de l'entreprise IBM.
Dernière mise à jour : Jeudi, le 3 mars 2016