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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  [Ayuda]con punteros en asm
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda]con punteros en asm  (Leído 6,961 veces)
ny0x


Desconectado Desconectado

Mensajes: 336


Ver Perfil
[Ayuda]con punteros en asm
« en: 12 Mayo 2009, 19:44 pm »

Hola a todos quiero aprender a programar en asm, porque he oido que es el lenguaje mas rapido que hay, y tambien estoy enterado de todas sus desventajas. Pero bueno mi duda es esta como puedo usar punteros en asm.
Ya se que es un poco pronto porque estoy empezando. Pero esto de practicar mientras aprendo me ha servido, antes mi idea es hacer una funcion para sacar la longitud de una cadena usando el caracter nulo. Para esto necesito hacer un puntero que apunte al principio de una cadena para irlo incrementndo pero no se nada estoy en cero. Bueno se lo basico como los registros, algunas instrucciones pero hasta ahi nada mas.
No estoy pidiendo que me den una funcion hecha sino que me guien a como la puedo hacer yo.

gracias


En línea

Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: [Ayuda]con punteros en asm
« Respuesta #1 en: 12 Mayo 2009, 19:58 pm »

para usarlos, lo metes en un registro y lo usas asi: mov eax, [ebx]
Donde los [] son para decirle que acceda a la dirección de memoria que hay en el registro.

Para saberla direccion de una variable gloval. puedes usar offset en masm y lea.
Si es una variable local, puedes usar lea tambien.

Saludos


En línea

ny0x


Desconectado Desconectado

Mensajes: 336


Ver Perfil
Re: [Ayuda]con punteros en asm
« Respuesta #2 en: 12 Mayo 2009, 20:31 pm »

Hola graicas por responder, intente hacer un code pero me surgen unas dudas, el lea solo me funciona dentro de main y no dentro len, bueno si compila pero se supone que debe mostrar holamundo pero no muestra nada (un messagebox vacio), y creo que a eso se deba que tarde tanto en salir de la funcion, los messagebox los puse para poder llevar un seguimiento de las variables.

Código
  1. include 'c:\fasm\include\win32ax.inc'
  2. entry main
  3. section '.code' code readable executable
  4. main:
  5.  
  6. invoke MessageBoxA,0,Hello,0,0
  7. push Hello
  8. call len
  9. invoke MessageBoxA,0,0,0,0
  10. mov eax,0
  11. ret
  12.  
  13. proc len,cad
  14. lea edx,[cad]
  15. invoke MessageBoxA,0,edx,edx,0
  16. mov ecx,0
  17. buc:
  18. cmp edx,0
  19. je salir
  20. inc edx
  21. inc ecx
  22. jmp buc
  23. salir:
  24. mov eax,ecx
  25. ret
  26. endp
  27.  
  28.  
  29.  
  30. section '.data' data readable writeable
  31.        Hello     db   'holamundo',0
  32.        var       rb   256
  33. section '.idata' import data readable
  34. library u32,'user32.dll'
  35. import u32,MessageBoxA,'MessageBoxA'

ayuda, ya se que puede ser desesperante explicarle algo a quien no entiende mucho sobre el tema, pero por favor sean pacientes por cierto uso fasm, lo de offset es tambien valido para fasm?

gracias
« Última modificación: 12 Mayo 2009, 23:01 pm por ny0x » En línea

bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: [Ayuda]con punteros en asm
« Respuesta #3 en: 12 Mayo 2009, 21:16 pm »

Citar
invoke MessageBoxA,0,eax,0,0
mov ecx,0
buc:
cmp eax,0
je salir
inc eax
jmp buc
salir:

¿que intentas aqui?. la salida de MessageBox es 1 y comparas eax con 0 y la condicion es que ¿incrementas hasta que eax sea 0? la verdad no es por desanimarte pero tio usa la logica, intenta tener una base mas solida y luego empezamos con los demas temas.
En línea

ny0x


Desconectado Desconectado

Mensajes: 336


Ver Perfil
Re: [Ayuda]con punteros en asm
« Respuesta #4 en: 12 Mayo 2009, 21:45 pm »

error de principiante, vengo de c y no estoy acostumbrado a que el valor de retorno se devuelva en un lugar especifico. No me habia dado cuenta, parece ser que lo que yo puse segun para comprobar que el code iba bien me lo echo a perder ;D.
Y nadie puede desanimarme (creo  :rolleyes:) , si yo me propongo algo lo logro aunque me cueste la cordura.
Cuando empece con c estaba peor, no sabia ni que era una variable  :P

P.D Gracias por contestar
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda punteros. [c++]
Programación C/C++
ninto33 3 4,052 Último mensaje 19 Enero 2011, 01:46 am
por ninto33
[AYUDA] Punteros y Nodos!!!!
Programación C/C++
dixson 5 6,482 Último mensaje 25 Enero 2011, 00:47 am
por negux
ayuda punteros sencillo
Programación C/C++
adexrn 2 2,527 Último mensaje 1 Marzo 2012, 21:53 pm
por adexrn
ayuda con punteros de C
Programación C/C++
LeoJ24 1 1,955 Último mensaje 11 Enero 2013, 18:13 pm
por durasno
[Ayuda] Vector de punteros a objectos
Programación C/C++
bemone 2 2,353 Último mensaje 24 Agosto 2013, 19:55 pm
por bemone
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines