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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  [Ayuda] Problemas con las direcciones en la pila
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda] Problemas con las direcciones en la pila  (Leído 2,990 veces)
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
[Ayuda] Problemas con las direcciones en la pila
« en: 19 Noviembre 2011, 23:12 pm »

hola!
tengo problemas con las direcciones de la pila y el contenido tambien  :-\
nose en que estoy fallando estoy haciendo unas pruebas para comprender
la pila tengo esto:
16 bits:

Código
  1.    push 33h
  2.    push 0h
  3.    push 0h
  4.    push 0h
  5.    push 0h
  6.    mov ax,ss:sp+8h

el push lo hago para despues obtener la direccion del valor 33h sumandole un desplazamiento al SP
cada push pesa 2bytes no? :P y quiero pasar el contenido ( 33h ) a AX :/
en que fallo ? :P


e intentado asi:

mov ax,[ss:sp+8h]

mov ax,[sp+8h]

pero tampoco :/


« Última modificación: 20 Noviembre 2011, 00:05 am por RHL » En línea

_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: [Ayuda] Problemas con las direcciones en la pila
« Respuesta #1 en: 20 Noviembre 2011, 05:48 am »

En modo real el direccionamiento de momoria funciona asi:
Código:
[BX + val]
[SI + val]
[DI + val]
[BP + val]
[BX + SI + val]
[BX + DI + val]
[BP + SI + val]
[BP + DI + val]
[address]

Cualquier otra combinacion no es valida.
 Por ende, te toca hacer por ejemplo:
Código:
mov bp, sp
mov ax, [bp+8]

Los registros no son de uso general. No son AX, BX, CX, DX por ABCD...
Sino Acomulator, Base, Counder, Data

Saludos.


« Última modificación: 20 Noviembre 2011, 05:58 am por _Enko » En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [Ayuda] Problemas con las direcciones en la pila
« Respuesta #2 en: 20 Noviembre 2011, 06:02 am »

 ;-) gracias _Enko
esto me quiere decir y pienso que el SP no se puede modificar no? :P
y no se aun que es modo real xD
me imagino que en ese modo se pueden modificar de todas formas por lo que veo :P
y es interesante eso que dices de los registros ;D
no se si estoy ocupando el registro correcto :P
pero lo pondre a practica , gracias :)
En línea

_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: [Ayuda] Problemas con las direcciones en la pila
« Respuesta #3 en: 20 Noviembre 2011, 15:54 pm »

Holas, el registro SP si se puede modificar. Lo que no puedes hacer es usarlo como Inidice cuando Indicas  un bloque de memoria.

Ejemplo:
Código
  1. mov sp, 100h ;valido
  2. mov [sp], 5; INVALIDO
  3. mov [sp + 2], 5 ;INVALIDO.
  4.  

O sea, justamente el registro SP es lo que puedes modificar. Lo que no puedes hacer es usarlo como indicador "puntero".
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [Ayuda] Problemas con las direcciones en la pila
« Respuesta #4 en: 20 Noviembre 2011, 17:08 pm »

aqui lo use como destino y no me ensamblo :P

Código:
   push 0
    push 0
    push 0
    push 0
    push sp
    pop  dx
    mov sp,dx+04h

perdon la insistencia :P pero estaba viendo las situaciones en las que si se puede para aprender :)

lo e resuelto de esta forma:

Código
  1.    push 30h
  2.    push 0
  3.    push 0
  4.    push 0
  5.    mov dx,sp
  6.    add dx,06
  7.    mov sp,dx

que quiere decir esto :P que al usar mov el operador fuente no se puede sumarse un valor? ( mov sp,dx+06 ; ilegal )
porque creo que esa es la instruccion ilegal pero no entiendo porque :P
« Última modificación: 20 Noviembre 2011, 18:44 pm por RHL » En línea

_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: [Ayuda] Problemas con las direcciones en la pila
« Respuesta #5 en: 21 Noviembre 2011, 01:19 am »

Hola, tenes que leer mi post anterior de nuevo. [DX+Val] no es una forma de direccionar la memoria valida. Lee de nuevo la lista, dx no esta alli. Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda a modificar una Pila C#
.NET (C#, VB.NET, ASP)
jacj0102 2 3,955 Último mensaje 18 Agosto 2011, 05:49 am
por neoncyber
ayuda con agregar y eliminar pila
Programación C/C++
attackers 1 2,932 Último mensaje 31 Octubre 2011, 02:09 am
por rir3760
Ayuda con la Pila (Stack)
ASM
isidora 6 4,674 Último mensaje 3 Diciembre 2011, 03:33 am
por Иōҳ
Las direcciones IP que empiezan por 37 provocan problemas de acceso a ...
Noticias
wolfbcn 2 1,696 Último mensaje 21 Marzo 2012, 22:32 pm
por Puntoinfinito
Problemas se me descontinua la PILA
Programación C/C++
x64core 0 1,012 Último mensaje 10 Junio 2012, 08:42 am
por x64core
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines