Je suis désassemblé d'un fichier .exe et j'ai eu ceci comme première ligne.
push ebp
EBP code>? li>
- a-t-il quelque chose à voir avec la commande
pop code>? Même si je ne le vois pas dans le démontage! Li>
ul> p>
3 Réponses :
Ceci est généralement utilisé pour établir un cadre de pile , suivi de p> push Ebp code> signifie simplement pousser tout ce qui est dans
EBP code> sur la pile.
EBP code> stocke le pointeur de la pile par convention.
mov ebp, esp
Vous pouvez également voir le congé d'instruction à la fin de la fonction, ce qui équivaut à MOV ESP, EBP suivi de POP EBP. C'est pourquoi vous ne pouvez pas voir une pop explicite.
Donc, cela signifie-t-il que toutes les applications commencent par PUSH EBP code> suivi de
MOV EBP, ESP CODE>?
Plus. Toutes les applications qui utilisent le registre EBP pour l'adressage variable ou tout ce qui doit restaurer le cadre de pile du programme d'appel.
Il appuie sur la valeur du registre EBP sur la pile et est le plus couramment utilisé pour configurer un empilement. pop code> récupère une valeur de la pile. p>
L'instruction PUSH enregistre la valeur d'un registre sur la pile. La valeur peut ensuite être récupérée à l'aide d'une instruction pop. P>
Stack Wikipedia (structure de données): http://fr.wikipedia.org/ Wiki / Stack_% 28Data_Structure% 29 P>
Vous ne voyez pas la commande correspondante
pop code> dans le démontage, car le < Code> Le laisser code> est utilisé à la place.