2010-07-31 14 views
6

J'ai démonté un fichier .exe et l'ai obtenu comme première ligne.Que signifie "push ebp" dans x86 assemby?

push ebp 
  • Qu'est-ce que cela signifie? Pourquoi le ebp? Pourquoi?
  • Est-ce que cela a quelque chose à voir avec la commande pop? même si je ne le vois pas dans le démontage!

Répondre

10

push ebp signifie simplement pousser ce qui est dans registerebp sur la pile. ebp stocke le pointeur de pile par convention.

Ceci est généralement utilisé pour établir une stack frame, suivie par

mov  ebp, esp 
+0

Vous pouvez également voir le CONGÉS d'instruction à la fin de la fonction, ce qui est équivalent au format MOV ESP, EBP suivi de POP EBP. C'est pourquoi vous ne pouvez pas voir une pop explicite. – indiv

+0

Donc, cela signifie-t-il que toutes les applications commencent par 'push ebp' suivi de' mov ebp, esp'? –

+0

Le plus. Toutes les applications qui utilisent le registre ebp pour l'adressage de variables ou autre doivent restaurer le cadre de pile du programme appelant. –

-1

Peut-être qu'il parle du registre ebp?

+0

Ceci est un commentaire, pas une réponse. –

2

Il pousse la valeur du registre EBP sur la pile et est le plus souvent utilisé pour configurer une pile. Pop récupère une valeur de la pile.