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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


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

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Duda de Assembly
« en: 22 Septiembre 2012, 18:00 pm »

Hola Gente,

No se si este es el lugar mas indicado para postear esto, pero si no lo es asi, haganmelo saber.

Si alguno tiene experiencia en lenguaje assembly, podria decirme si la directiva de compilacion WORD PTR para direccionamiento indirecto, se puede usar con la memoria asignada a la pila?

Estoy haciendo este programa y al intentar compilarlo, todas las lineas que incluyen esta directiva dan error de compilacion.
Esto es raro, dado que la directiva ha compilado bien en otros casos.

El programa suma 2 numeros de 32 bits almacenados en memoria, por medio de la subrutina sum32. Se pasa uno de los numeros por referencia y el otro por valor, ambos a traves de la pila.

ORG 1000H
NUM1 DW 0101H
     DW 0101H
NUM2 DW 0909H
     DW 0909H
RES  DW ?
     DW ?
   
ORG 3000H
SUM32: MOV BX,SP
      ADD BX,6
      MOV DX, WORD PTR [BX]
      ADD BX,2
      MOV AX, WORD PTR [BX]
      SUB BX,4
      MOV CX, WORD PTR [BX]
      MOV BX,CX
      ADD AX, WORD PTR [BX]
      ADD BX,2
      ADD DX, WORD PTR [BX]
      MOV BX,SP
      ADD BX,2
      MOV CX, WORD PTR [BX]
      MOV BX,CX
      MOV WORD PTR [BX],AX
      ADD BX,2
      MOV WORD PTR [BX],DX
RET

ORG 2000H
PUSH AX
PUSH BX
PUSH DX
PUSH CX
MOV AX,NUM1
PUSH AX
MOV AX,NUM1+2
PUSH AX
MOV AX,OFFSET NUM2
PUSH AX
CALL SUM32
POP AX
POP AX
POP AX
POP AX
POP CX
POP DX
POP BX
POP AX
HLT
END


Muchas gracias!


En línea

Nop+

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Duda de Assembly
« Respuesta #1 en: 24 Septiembre 2012, 23:50 pm »

Hola Gente,

MOV DX, WORD PTR [BX]

Esta instrucción esta mal puesta, si tu quieres mover al registro dx, el contenido de BX, debes ponerlo así

Mov DX, Word ptr [EBX] ; pero ojo esto lo que hará es mover lo que hay en la direccion apuntada por ds:bx....


Lo correcto sería

lea ebx,[numero]     ; imagina que numero tiene el valor 6
mov dx, word ptr [ebx] ; moverá  6 a dx




En línea

fary


Desconectado Desconectado

Mensajes: 1.076



Ver Perfil WWW
Re: Duda de Assembly
« Respuesta #2 en: 25 Septiembre 2012, 18:14 pm »

Esta instrucción esta mal puesta, si tu quieres mover al registro dx, el contenido de BX, debes ponerlo así

Mov DX, Word ptr [EBX] ; pero ojo esto lo que hará es mover lo que hay en la direccion apuntada por ds:bx....


Lo correcto sería

lea ebx,[numero]     ; imagina que numero tiene el valor 6
mov dx, word ptr [ebx] ; moverá  6 a dx




Esa instrucción esta correctamente puesta ;)



Respondiendo al tema me imagino que quieres hacer algo así:

Código
  1. mov dx,word ptr [sp]

Que claro que se puede hacer :)

Yo mas bien creo que tu error esta en usar la instruccion org varias veces.. eso creo que no se puede hacer  :-\

un saludo!
En línea

Un byte a la izquierda.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Movido]C + assembly
Programación Visual Basic
jose2c 0 1,418 Último mensaje 21 Febrero 2006, 23:32 pm
por jose2c
Assembly
Bugs y Exploits
VCore 3 3,410 Último mensaje 8 Octubre 2010, 13:35 pm
por tragantras
Recomendación libro assembly
Ingeniería Inversa
m0rf 3 11,855 Último mensaje 25 Noviembre 2023, 00:36 am
por Serapis
Assembly sin SO ¿? « 1 2 »
ASM
dac 17 13,034 Último mensaje 3 Julio 2012, 23:54 pm
por zu-zu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines