Section courante

A propos

Section administrative du site

Assembleur 80x86

PUSHA

INTEL 80186+ Push All General Registers

Syntaxe

PUSHA

Description

Cette instruction permet d'empiler respectivement les registres DI, SI, BP, SP, BX, DX, CX et AX dans la pile.

Algorithme

temp ← ESP
(E)SP ← (E)SP - 2
SS:(E)SP ← AX
(E)SP ← (E)SP - 2
SS:(E)SP ← CX
(E)SP ← (E)SP - 2
SS:(E)SP ← DX
(E)SP ← (E)SP - 2
SS:(E)SP ← BX
(E)SP ← (E)SP - 2
SS:(E)SP ← temp
(E)SP ← (E)SP - 2
SS:(E)SP ← BP
(E)SP ← (E)SP - 2
SS:(E)SP ← SI
(E)SP ← (E)SP - 2
SS:(E)SP ← DI

Mnémonique

Instruction Opcode Description
PUSHA 60h Empile le contenu des registres AX, CX, DX, BX, SP avant l'appel de cette instruction, BP, SI et DI 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