Autor
|
Tema: [Ayuda] Problemas con las direcciones en la pila (Leído 4,141 veces)
|
x64core
Desconectado
Mensajes: 1.908
|
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: push 33h push 0h push 0h push 0h push 0h 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? y quiero pasar el contenido ( 33h ) a AX :/ en que fallo ? 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
|
En modo real el direccionamiento de momoria funciona asi: [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: 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
Mensajes: 1.908
|
gracias _Enko esto me quiere decir y pienso que el SP no se puede modificar no? 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 y es interesante eso que dices de los registros no se si estoy ocupando el registro correcto pero lo pondre a practica , gracias
|
|
|
En línea
|
|
|
|
_Enko
|
Holas, el registro SP si se puede modificar. Lo que no puedes hacer es usarlo como Inidice cuando Indicas un bloque de memoria. Ejemplo: mov sp, 100h ;valido mov [sp], 5; INVALIDO mov [sp + 2], 5 ;INVALIDO.
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
Mensajes: 1.908
|
aqui lo use como destino y no me ensamblo push 0 push 0 push 0 push 0 push sp pop dx mov sp,dx+04h perdon la insistencia pero estaba viendo las situaciones en las que si se puede para aprender lo e resuelto de esta forma:
push 30h push 0 push 0 push 0 mov dx,sp add dx,06 mov sp,dx
que quiere decir esto 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
|
|
« Última modificación: 20 Noviembre 2011, 18:44 pm por RHL »
|
En línea
|
|
|
|
_Enko
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda a modificar una Pila C#
.NET (C#, VB.NET, ASP)
|
jacj0102
|
2
|
4,881
|
18 Agosto 2011, 05:49 am
por neoncyber
|
|
|
ayuda con agregar y eliminar pila
Programación C/C++
|
attackers
|
1
|
3,785
|
31 Octubre 2011, 02:09 am
por rir3760
|
|
|
Ayuda con la Pila (Stack)
ASM
|
isidora
|
6
|
6,077
|
3 Diciembre 2011, 03:33 am
por Иōҳ
|
|
|
Las direcciones IP que empiezan por 37 provocan problemas de acceso a ...
Noticias
|
wolfbcn
|
2
|
2,276
|
21 Marzo 2012, 22:32 pm
por Puntoinfinito
|
|
|
Problemas se me descontinua la PILA
Programación C/C++
|
x64core
|
0
|
1,616
|
10 Junio 2012, 08:42 am
por x64core
|
|