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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  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,672 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.470


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.470


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 7,979 Ú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 12,817 Último mensaje 4 Abril 2011, 10:39 am
por black_flowers
duda en pila con lenguaje c
Programación C/C++
king1517 2 2,732 Último mensaje 29 Junio 2011, 18:28 pm
por leogtz
Duda: Crear una pila contando palabras encontradas en un string
PHP
Darkkz 2 2,333 Último mensaje 10 Septiembre 2011, 23:35 pm
por Darkkz
Duda puntero a pila.
Programación General
lanun 0 1,472 Último mensaje 27 Marzo 2014, 20:05 pm
por lanun
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines