[SOLUCIONADO] Para que sirve usar push ebp?

Iniciado por proxy_lainux, Junio 23, 2013, 12:04:00 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Junio 23, 2013, 12:04:00 AM Ultima modificación: Agosto 30, 2014, 09:24:12 AM por Expermicid
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

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
<title>Dulce caos, Dulce venganza</title>

Junio 23, 2013, 11:41:29 AM #2 Ultima modificación: Junio 23, 2013, 11:43:45 AM por mr.blood
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

tengo que estudiar más
<title>Dulce caos, Dulce venganza</title>

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