El lenguaje Ensamblador es un lenguaje de programación de bajo nivel que está muy cerca del lenguaje de máquina (es decir, el código binario que vimos en la anterior entrada).
A diferencia de los lenguajes de alto nivel como C++ o Java, que son más fáciles de entender para los humanos, el lenguaje ensamblador está diseñado para ser más fácil de entender para el procesador.
El lenguaje ensamblador es un lenguaje de programación que utiliza mnemónicos para representar las instrucciones que se ejecutarán en el procesador. Estos mnemónicos son traducidos por el ensamblador a su equivalente en código binario.
Por ejemplo, la instrucción ADD
en ensamblador representa una operación de suma en el procesador. El ensamblador convierte esta instrucción a su equivalente en código binario para que el procesador pueda ejecutarla.
Un ejemplo de programa en lenguaje Ensamblador sería:
section .data
mensaje db 'Hola, mundo!', 0
section .text
global _start
_start:
; Escribir el mensaje en la consola
mov eax, 4 ; Código de la llamada al sistema para escribir en pantalla
mov ebx, 1 ; Descriptor de archivo estándar de salida (stdout)
mov ecx, mensaje ; Dirección del mensaje a imprimir
mov edx, 13 ; Longitud del mensaje
int 0x80 ; Interrupción del sistema para realizar la llamada
; Salir del programa
mov eax, 1 ; Código de la llamada al sistema para salir
xor ebx, ebx ; Valor de retorno (0)
int 0x80 ; Interrupción del sistema para realizar la llamada
Como vemos, como lenguaje de programación sigue siendo bastante horrible. Pero ya tiene alguno de los puntos que veremos en los lenguajes de programación como:
- Bloques
- Variables
- Comentarios
- Punto de entrada y de salida
Traducir ensamblador a código máquina
El proceso de traducción del lenguaje Ensamblador a código binario se realiza mediante el proceso de ensamblado (es precisamente este proceso el que da nombre al lenguaje de programación).
El proceso de ensamblado utiliza una tabla de instrucciones y su equivalente en opcodes para convertir las instrucciones escritas en Ensamblador a código binario.
Por ejemplo, si durante el ensamblado se encuentra la instrucción ADD
en el código fuente, buscará en la tabla de instrucciones la correspondiente operación de suma en código binario y generará el código binario necesario para que el procesador ejecute esa operación.
El lenguaje Ensamblador es un lenguaje de programación de muy bajo nivel que se utiliza para programar sistemas que requieren un control preciso sobre los recursos del procesador.
Su relación con el código binario es muy cercana, ya que utiliza mnemónicos para representar las instrucciones que se traducen al código binario. De hecho, el proceso de ensamblado es proceso sencillo, básicamente una traducción directa con el uso de unas tablas.
El lenguaje ensamblador no se utiliza frecuentemente en al actualidad. Pero aún se emplea para programar sistemas en los que se necesita un control preciso sobre los recursos del procesador, como en sistemas operativos, controladores de dispositivos, software de tiempo real.