Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: proxy_lainux en Junio 23, 2013, 12:04:00 AM

Título: [SOLUCIONADO] Para que sirve usar push ebp?
Publicado por: proxy_lainux en Junio 23, 2013, 12:04:00 AM
hola

alguien me podria decir cual es la funcion de usar?

push ebp
mov ebp, esp
sub esp, 4

es que veo varios codigo que lo utilizan pero no entiendo para que funcionan, solo se que substraen 4 bytes, pero no se para que mas sirva
Título: Re:para que sirve usar push ebp?
Publicado por: dark.newb1e.zer0 en Junio 23, 2013, 12:24:34 AM
creo que el push mete el valor de ebp a la pila, luego se copia el valor de esp a ebp. y luego se resta 4 a esp
no estoy seguro, recien estoy empezando con assembler pero basicamente esas son las instrucciones meter valor a pila, copiar valor y restar 4
Título: Re:para que sirve usar push ebp?
Publicado por: mr.blood en Junio 23, 2013, 11:41:29 AM
Antes de nada, debeis saber que ESP y EBP son punteros al stack. StackPointer(SP) y BasePointer(BP). SP apunta al tope y BP a la base.




Se utiliza antes de entrar a una función para cambiar el marco del stack.

ESP
datos
datos
EBP

Guarda en el stack el antiguo valor de EBP para luego recuperarlo. Mueve ESP a EBP de modo que no se sobreescriban los datos anteriormente guardados ;). El sub ESP, 4 "reserva" 4 bytes en el stack.

Luego, al salir de la funcion debes usar leave para que los registros tomen los valores que tenian al principio.

Sa1uDoS
Título: Re:para que sirve usar push ebp?
Publicado por: dark.newb1e.zer0 en Junio 23, 2013, 11:56:21 AM
tengo que estudiar más
Título: Re:para que sirve usar push ebp?
Publicado por: proxy_lainux en Junio 23, 2013, 12:49:24 PM
aaa ok, ya entendi gracias por la explicacion

CitarMueve ESP a EBP de modo que no se sobreescriban los datos anteriormente guardados

Esa parte, me explico otra duda

gracias
Título: Re:[SOLUCIONADO] para que sirve usar push ebp?
Publicado por: Kodeinfect en Junio 23, 2013, 04:10:59 PM
Tema solucionado, tema cerrado.
Un saludo ;)