Section courante

A propos

Section administrative du site

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.

Dernière mise à jour : Vendredi, le 5 septembre 2014