En este post quiero mostrar como realizar un programa simple "hola mundo" en lenguaje ensamblador, en el sistema operativo Linux Debian Lenny, usando el ensamblador NASM
como primer paso es necesario instalar nasm, en Debian esta tarea es trivial, y se reduce a ejecutar como root el comando
una vez completa la instalación de nasm, pasamos al código fuente del ejemplo
solamente se define una cadena y una constante con la longitud de dicha cadena, luego se invoca a la llamada "write" del sistema, y se termina el programa con la llamada a "exit"
asumiendo que el código fuente, se coloca en el archivo hello.asm los comandos para ensamblar y enlazar el código para crear el ejecutable serian los siguientes
este comando, le pide a nasm que ensamble el archivo hello.asm y genere codigo objeto en formato ELF
este comando invoca al linker (enlazador) para que a partir del codigo objeto, almacenado en hello.o producto de invocar a nasm, nos genere un archivo ejecutable con nombre hello
y finalmente para ejecutar
lo que debe imprimir en la consola el mensaje "hola mundo!"
Código fuente completo
como primer paso es necesario instalar nasm, en Debian esta tarea es trivial, y se reduce a ejecutar como root el comando
apt-get install nasm
una vez completa la instalación de nasm, pasamos al código fuente del ejemplo
section .data holaStr: db 'Hola Mundo!',10 holaSize: equ $-holaStr section .text global _start _start: mov eax,4 ; llamada del sistema 'write' identificador 4 mov ebx,1 ; descriptor de archivo 1 = pantalla mov ecx,holaStr ; cadena a mostrar mov edx,holaSize ; longitud de la cadena int 80h ; invocar al kernel ; Terminate program mov eax,1 ; llamada del sistema 'exit' mov ebx,0 ; codigo de error 0 int 80h ; invocar al kernel
solamente se define una cadena y una constante con la longitud de dicha cadena, luego se invoca a la llamada "write" del sistema, y se termina el programa con la llamada a "exit"
asumiendo que el código fuente, se coloca en el archivo hello.asm los comandos para ensamblar y enlazar el código para crear el ejecutable serian los siguientes
nasm -f elf hello.asm
este comando, le pide a nasm que ensamble el archivo hello.asm y genere codigo objeto en formato ELF
ld -o hello hello.o
este comando invoca al linker (enlazador) para que a partir del codigo objeto, almacenado en hello.o producto de invocar a nasm, nos genere un archivo ejecutable con nombre hello
y finalmente para ejecutar
./hello
lo que debe imprimir en la consola el mensaje "hola mundo!"
Código fuente completo
Comentarios
Publicar un comentario