elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 00:56  


Tema destacado: Entra al canal IRC oficial de #elhacker.net

+  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 2,480 veces)
ny0x


Desconectado Desconectado

Mensajes: 336


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

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: 298



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

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 »

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
include 'c:\fasm\include\win32ax.inc'
entry main
section '.code' code readable executable
main:
 
invoke MessageBoxA,0,Hello,0,0
push Hello
call len
invoke MessageBoxA,0,0,0,0
mov eax,0
ret
 
proc len,cad
lea edx,[cad]
invoke MessageBoxA,0,edx,edx,0
mov ecx,0
buc:
cmp edx,0
je salir
inc edx
inc ecx
jmp buc
salir:
mov eax,ecx
ret
endp
 
 
 
section '.data' data readable writeable
       Hello     db   'holamundo',0
       var       rb   256
section '.idata' import data readable
library u32,'user32.dll'
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 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 »

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 »

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 1,535 Último mensaje 19 Enero 2011, 01:46
por ninto33
[AYUDA] Punteros y Nodos!!!!
Programación C/C++
dixson 5 1,026 Último mensaje 25 Enero 2011, 00:47
por negux
ayuda punteros sencillo
Programación C/C++
adexrn 2 236 Último mensaje 1 Marzo 2012, 21:53
por adexrn
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines