Título: Problema de novato Publicado por: Debci en 8 Noviembre 2009, 14:00 pm Hola amigos, estoy metiendome en esto del ensamblador, he creado mi primer programa, con nasm:
Código
Al compilar hago: Código
Y no crea el ejecutable :s Alguien sabe que me esta pasando? Saludos Título: Re: Problema de novato Publicado por: Eternal Idol en 8 Noviembre 2009, 14:30 pm Despues de ensamblar y enlazar ya podes ejecutar tu programa (no hace falta involucrar al compilador gcc):
nasm -f elf test.asm ld test.o -o test ./test Título: Re: Problema de novato Publicado por: Debci en 8 Noviembre 2009, 15:12 pm Despues de ensamblar y enlazar ya podes ejecutar tu programa (no hace falta involucrar al compilador gcc): A okey., gracias!nasm -f elf test.asm ld test.o -o test ./test Saludos Título: Re: Problema de novato Publicado por: Eternal Idol en 8 Noviembre 2009, 15:20 pm De nadas ::)
Título: Re: Problema de novato Publicado por: Debci en 8 Noviembre 2009, 21:35 pm De nadas ::) Siento alargar el post inutilmente, pero me podrias explicar un poco por encima ese codigo, mira he hecho Java y C++ a un nivel bastante alto, pero no comprendo nada, de nada.Palabras extraña que solo ahcen que reniegue de mi coherencia en la programacion :s Saludos Título: Re: Problema de novato Publicado por: Eternal Idol en 8 Noviembre 2009, 23:32 pm A grosso modo en Linux se pone en eax el numero del servicio y los siguientes parametros van en ebx, ecx, edx, esi, edi y ebp. En /usr/include/asm/ unistd.h/unistd_32.h/unistd_64.h encontraras los numeros de los servicios. 1 es __NR_exit y el 0 que se le pasa como parametro en ebx es el valor de retorno del programa (http://linux.die.net/man/2/exit). 4 es __NR_write y el 1 que le pasas como primer parametro en ebx es STDOUT (salida por consola), el segundo parametro (ecx) deberia ser el puntero a la cadena y el tercer parametro (edx) el tamaño de la cadena. http://linux.die.net/man/2/write Igual si lees los comentarios del codigo ahi te indica todo. |