Programación en Ensamblador
El tiempo que emplearemos para programar en Ensamblador será mucho mayor que el de costumbre, sin embargo al final obtendremos un programa de menor tamaño y mucho más veloz que cualquier otro.
Usando lenguajes como C o Java, podemos escribir el mismo código fuente y podrá funcionar en una PC, PowerPC y otras arquitecturas. En cambio con el lenguaje ensamblador, tendremos que escribir el mismo programa con diferente código fuente. Esto es debido a que el lenguaje ensamblador se comunica directamente con el hardware y estas arquitecturas son totalmente distintas y es por ello que es necesario conocer el conjunto de instrucciones y características del procesador con el que vamos a trabajar, incluyendo las características de los ensambladores, enlazadores y depuradores.
Entre los ensambladores destacan en GNU/Linux, Windows y DOS
- GNU Assembly
- NASM
- MASM
Veamos un ejemplo clasico, Hola Mundo!!!, con NASM en GNU/Linux
Hola.S section .text global _start _start: mov edx, length mov ecx, mensaje mov ebx, 1 mov eax, 4 int 0x80 mov eax, 1 int 0x80 section .data mensaje db 'Hola Mundo!', 0xa length equ $ - mensaje
Compilemos nuestro programa
$ nasm -f elf hola.S $ ld -s -o hola hola.o $ ./hola Hola Mundo!
Segundo ejemplo con GNU/Linux & NASM
hola2.S global main extern printf section .text main: push dword mensaje call printf pop eax ret section .data mensaje db 'Hola Mundo!', 0xa
Compilemos nuestro programa, en este segundo ejemplo llamamos a la función printf de C, esto es una característica de NASM.
$ nasm -f elf hola2.S $ gcc hola2.o -o hola2 $ ./hola2 Hola Mundo!


[...] el artículo Programación en Ensamblador muestro un ejemplo sencillo que muestra el clásico Hello World utilizando la función [...]