Desensamblé un archivo .exe y obtuve esto como su primera línea.¿Qué significa "push ebp" en ensamblaje x86?
push ebp
- ¿Qué significa?
- ¿Por qué
ebp
? - ¿Tiene algo que ver con el comando
pop
? ¡aunque no lo veo en el desmontaje!
Desensamblé un archivo .exe y obtuve esto como su primera línea.¿Qué significa "push ebp" en ensamblaje x86?
push ebp
ebp
?pop
? ¡aunque no lo veo en el desmontaje!push ebp
sólo significa empujar lo que está en registerebp
en la pila. ebp
almacena el puntero de la pila por convención.
Esto se utiliza generalmente para establecer una stack frame, seguido de
mov ebp, esp
Empuja el valor del registro EBP en la pila, y se usa más comúnmente para configurar una pila. Pop
recupera un valor de la pila.
La instrucción push guarda el valor de un registro en la pila. El valor puede recuperarse luego usando una instrucción pop.
Wikipedia Pila (estructura de datos): http://en.wikipedia.org/wiki/Stack_%28data_structure%29
También puede ver la instrucción leave al final de la función, lo que equivale a MOV ESP, seguido de EBP EBP POP. Es por eso que no puede ver un pop explícito. – indiv
Entonces, ¿significa que todas las aplicaciones comienzan con 'push ebp' seguido de' mov ebp, esp'? –
Most. Todas las aplicaciones que usan el registro ebp para direccionamiento variable o lo que sea deben restaurar el marco de pila del programa que realiza la llamada. –