7
votes

Pourquoi Pop prend un paramètre en montage?

popl   %ebp
It seems the %ebp is unnecessary because the pop operation of stack doesn't need a parameter.Why does it make sense?

0 commentaires

3 Réponses :


6
votes

Ce paramètre définit la destination.


0 commentaires

4
votes

Pour développer la réponse d'Andrey, en plus de l'incrémentation du pointeur de pile sur l'élément POPPED, l'élément POPPED est également copié à une adresse de destination ou à un registre.

L'instruction que vous avez donnée est plus ou moins équivalente aux deux instructions (Syntaxe Intel) p>

add $4, %esp
mov -4(%esp), %ebp


0 commentaires

9
votes

de http://www.cs.virginia.edu/ ~ Evans / CS216 / Guides / x86.html

pop - pile pop

L'instruction POP supprime l'élément de données de 4 octets à partir du haut de la pile prise en charge du matériel dans l'opérande spécifié (c'est-à-dire un registre ou lieu de mémoire). Il déplace d'abord les 4 octets situés à la mémoire [SP] dans le registre ou l'emplacement de la mémoire spécifié, puis incrémente SP par 4.

syntaxe
POP
Pop

exemples
Pop Edi - Pop L'élément supérieur de la pile en EDI.
Pop [EBX] - Pop L'élément supérieur de la pile en mémoire sur les quatre octets à partir de l'emplacement EBX.

Une autre bonne référence est http://fr.wikibooks.org/wiki/x86_assembly et Il est disponible dans formulaire PDF .


0 commentaires