| Assembleur 80x86 | PUSHAD |
|---|---|
| INTEL 80386+ | Push All General Registers Double |
Syntaxe
| PUSHAD |
Description
Cette instruction permet d'empiler respectivement les registres EDI, ESI, EBP, ESP, EBX, EDX, ECX et EAX dans la pile.
Algorithme
|
temp ← ESP (E)SP ← (E)SP - 2 SS:(E)SP ← EAX (E)SP ← (E)SP - 2 SS:(E)SP ← ECX (E)SP ← (E)SP - 2 SS:(E)SP ← EDX (E)SP ← (E)SP - 2 SS:(E)SP ← EBX (E)SP ← (E)SP - 2 SS:(E)SP ← temp (E)SP ← (E)SP - 2 SS:(E)SP ← EBP (E)SP ← (E)SP - 2 SS:(E)SP ← ESI (E)SP ← (E)SP - 2 SS:(E)SP ← EDI |
Mnémonique
| Instruction | Opcode | Description |
|---|---|---|
| PUSHAD | 60h | Empile le contenu des registres EAX, ECX, EDX, EBX, ESP avant l'appel de cette instruction, EBP, ESI et EDI dans la pile. Invalide en mode 64 bits. |
Exceptions
| Message | Mode réel | Virtuel 8086 | Mode protégé | Description |
|---|---|---|---|---|
| #UD(Opcode invalide) | X | Cette instruction est exécuté en mode 64 bits. | ||
| #SS(Pile) | X | X | X | Une adresse mémoire dépasse la limite du segment de pile ou n'est pas canonique |
| #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é |
Voir également
Langage de programmation - Assembleur 80x86 - Instruction POPA
Langage de programmation - Assembleur 80x86 - Instruction POPAD
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 827
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 199.
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 326 à 327.