Assembleur 80x86 | POPF |
---|---|
INTEL 8088+, x86-64 | Pop Flags |
Syntaxe
POPF |
Description
Cette instruction permet de désempiler de la pile le registre 16 bits de drapeau contenant les indicateurs d'état.
Algorithme
MODULE POPF Registre de drapeaux ← SS:(E)SP (E)SP ← (E)SP + 2 |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
POPF | 9Dh | Désempile le mot de la pile et la met dans le registres des drapeaux (FLAGS). |
Exceptions
Message | Mode réel | Virtuel 8086 | Mode protégé | Description |
---|---|---|---|---|
#SS(Pile non-canonique) | X | X | X | Une adresse mémoire dépasse la limite du segment de pile ou n'est pas canonique |
#GP(Protection général) | X | Le niveau de privilège d'entrée/sortie est inférieur à 3 et CR4.VME vaut 0. | ||
X | Le niveau de privilège d'entrée/sortie est inférieur à 3 et une opérande est de taille de 32 bits. | |||
X | Le niveau de privilège d'entrée/sortie est inférieur à 3 et les bits EFLAGS.VIP et le nouveau EFLAGS.IF valent 1. | |||
X | Le niveau de privilège d'entrée/sortie est inférieur à 3 et le nouveau EFLAGS.TF vaut 1. | |||
#PF(Faute de page) | X | X | Une faute de page résultat de l'exécution de l'instruction | |
#AC(Vérifie l'alignement) | X | X | Un désalignement de la référence mémoire est effectué quand une vérification d'alignement est activé |
Exemple
L'exemple suivant permet de remplacer la valeur des drapeaux du microprocesseur la valeur de la variable nouveaudrapeau en mode réel :
Voir également
Langage de programmation - Assembleur 80x86 - Instruction PUSHF
Langage de programmation - Assembleur 80x86 - Instruction PUSHFD
Langage de programmation - Assembleur 80x86 - Instruction PUSHFQ
Langage de programmation - Structure de données - Structures récursives linéaires - Pile
Références
Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 826
Assembleur Facile, Philippe Mercier, 1990, ISBN: 2-501-01176-7, page 412
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2B: Instruction Set Reference, N-Z, Edition Intel, Mars 2010, Publication No. 253667-034US, page 234 à 237.
AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions, Edition Advanced Micro Devices, Revision 3.14, September 2007, Publication No. 24594, page 190.