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
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
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
Tema solucionado, tema cerrado.
Un saludo ;)