Assembleur 80x86 | ARPL |
---|---|
INTEL 80286+ (Mode protégé) | Adjust RPL field of selector |
Syntaxe
ARPL Opérande Cible,Opérande Source |
Paramètres
Nom | Description |
---|---|
Opérande Cible | Ce paramètre permet d'indiquer le premier opérande à comparer |
Opérande Source | Ce paramètre permet d'indiquer le deuxième opérande à comparer |
Description
Avec cette instruction, on pourra contrôler et corriger le niveau de privilège du segment de code en mode protégée. Pour pouvoir corriger le niveau de privilège, cette instruction effectuera une comparaison du paramètre de destination et de source et s'il pas vrai, alors il ajustera la destination jusqu'à ce qu'il atteigne la source spécifié.
Algorithme
MODULE ARPL(Opérande Cible,Opérande Source) SI RPL bits(0,1) DE Opérande Cible < RPL bits(0,1) DE Opérande Source ALORS drapeau ZF ← 1 RPL bits(0,1) DE Opérande Cible ← RPL bits(0,1) DE Opérande Source SINON drapeau ZF ← 0 FIN SI |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
ARPL reg/mem16, reg16 | 63h /r | Ajuste le RPL du sélecteur de segment de destination au niveau inférieur du RPL du sélecteur de segment spécifié dans le registre source 16 bits. Invalide en mode 64 bits. |
Exceptions
Message | Mode réel | Virtuel 8086 | Mode protégé | Description |
---|---|---|---|---|
#UD(Opcode invalide) | X | X | Cette instruction est seulement reconnu en mode protégé «legacy» et en mode de compatibilité. | |
#SS(Pile) | X | Une adresse mémoire dépasse la limite du segment de pile. | ||
#GP(Protection général) | X | Une adresse mémoire dépasse la limite du segment de données | ||
X | L'opérande de destination n'est pas dans un segment non écrivable | |||
X | Un sélecteur de segment nulle est utilisé comme référence mémoire | |||
#PF(Faute de page) | X | Une faute de page résultat de l'exécution de l'instruction | ||
#AC(Vérifie l'alignement) | X | Un désalignement de la référence mémoire est effectué quand une vérification d'alignement est activé |
Exemple
Cet exemple permet de corriger le résultat à l'adresse de déplacement (offset) «[BX+SI]» :
- ARPL [BX+SI], DI
Voir également
Instruction assembleur 80x86 - Instruction LAR
Instruction assembleur 80x86 - Instruction LSL
Instruction assembleur 80x86 - Instruction VERR
Instruction assembleur 80x86 - Instruction VERW
Références
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2A: Instruction Set Reference, A-M, Edition Intel, Mars 2010, Publication No. 253666-034US, page 130 à 132.