elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  [DUDA] mover a la pila
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [DUDA] mover a la pila  (Leído 3,888 veces)
blackray

Desconectado Desconectado

Mensajes: 14



Ver Perfil
[DUDA] mover a la pila
« en: 9 Septiembre 2009, 19:33 pm »

Aqui estoy con mis dudas  :xD

Segun lei los registros sp y bp contienen el valor mas reciente introducido en la pila y el valor de la base de la pila respectivamente.

Entonces...

mov ax,5
push ax ; la pila tiene de base el valor 5
mov bp,6 ; ????

Si movemos a el registro bp el valor 6, tambien se modifica el valor de la pila?

Saludos, y gracias! :P


En línea

Nada es imposible.
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: [DUDA] mover a la pila
« Respuesta #1 en: 9 Septiembre 2009, 22:40 pm »

Hola!

ESP (Stack Pointer) es un PUNTERO al primer elemento de la pila (superior). Al hacer el push ax, el valor de ESP se incrementara en 2 bytes, obteniendo asi, un nuevo puntero al valor que acabas de pushear.

De la forma en que utilizas EBP (mov bp, 6), lo haces como si se tratara de un registro cualquiera (EAX, ECX, EDX). De esta forma NO modificas el stack.

Espero haberte ayudado...

Saludos!




En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

blackray

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: [DUDA] mover a la pila
« Respuesta #2 en: 10 Septiembre 2009, 00:58 am »

Si me ayudaste :P

Y si hago...

mov ax,5
mov bp,6
push ax

En este caso perdere el 6 de bp y [bp] sera = a 5, estoy en lo correcto?

Gracias! :D
En línea

Nada es imposible.
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: [DUDA] mover a la pila
« Respuesta #3 en: 10 Septiembre 2009, 01:15 am »

Me parece que estás confundiendo EBP con ESP.

Si haces:

Código:
mov ax, 5
mov bp, 6
push ax

El valor de BP pasa a ser 6 y [BP] (o mejor dicho, el valor de la posicion de memoria a la cual apunta BP) es incierto. Esto es, siempre y cuando no hayas colocado algo en esa posicion. Ahora, para hacer esto, mejor utiliza los registros "comunes": EAX, ECX, EDX.

En Windows hay reglas de conservación ó preservación de los regsitros. "Normalmente" nunca utilizas EBP en una rutina.

Para recuperar el valor pusheado, podrias hacer (en ECX):

Código:
pop cx

ó

Código:
mov cx, word ptr [esp]

Como vez, ESP es el que se utiliza a la hora de trabajar con la pila...

Sin ánimos de ofender, te recomiendo un tutorial básico de ASM. Te puede sacar este tipo de dudas...


Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

blackray

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: [DUDA] mover a la pila
« Respuesta #4 en: 10 Septiembre 2009, 03:07 am »

Muchas gracias y disculpa las molestias :P

Yo lei un tutorial basico de asm, el problema es que dicen: bp apunta a la base de la pila y sp a el valor que acaba de ser empujado a ella y si solo metemos un valor, yo creia que bp y sp iban a apuntar a la misma posicion  :xD

Saludos!
En línea

Nada es imposible.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
nueva duda pila en C « 1 2 »
Programación C/C++
pakleisito 13 8,612 Último mensaje 28 Mayo 2011, 16:50 pm
por D4RIO
duda de cómo se introducen cadenas en la pila (manualmente). « 1 2 3 »
Análisis y Diseño de Malware
black_flowers 25 13,771 Último mensaje 4 Abril 2011, 10:39 am
por black_flowers
duda en pila con lenguaje c
Programación C/C++
king1517 2 2,965 Último mensaje 29 Junio 2011, 18:28 pm
por leogtz
Duda: Crear una pila contando palabras encontradas en un string
PHP
Darkkz 2 2,485 Último mensaje 10 Septiembre 2011, 23:35 pm
por Darkkz
Duda puntero a pila.
Programación General
lanun 0 1,684 Último mensaje 27 Marzo 2014, 20:05 pm
por lanun
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines