Búsqueda personalizada

Anuncios Google

El programa en lenguaje ensamblador

Estructura general

.section .data
# aqui se declaran variables inicializadas
.section .bss
# aqui se declaran variables sin inicializar
.section .text
.globl _start
_start: # esta etiqueta indica el inicio del programa principal
# aqui van las instrucciones
movl $1, %eax # estas tres instrucciones
movl $0, %ebx # indican la finalización
int $0x80 # del programa

Como se puede observar en el programa anterior, las directivas comienzan con un punto, los identificadores van seguidos de dos puntos y los comentarios comienzan con el símbolo #.

El programa debe tener al menos las secciones .data y .text, la sección .bss es opcional.

El punto de inicio es la etiqueta _start la cual indica a partir de qué instrucción se comienza a ejecutar el código. Esta etiqueta debe ser declarada como global, es decir, que esté disponible para aplicaciones externas; esto se logra utilizando la directiva .globl.

Si traducimos un programa escrito en lenguaje de programación C a ensamblador usando gcc, el programa resultante tendrá la etiqueta de inicio main y termina con las instrucciones leave y ret. Esto se debe al hecho que la herramienta de compilación gcc genera un procedimiento propio de C el cual tiene una etiqueta _start y el programa en ensamblador es tratado como un procedimiento.

En los ejemplos vamos a utilizar el punto de inicio _start y la finalización mostrada la cual es una llamada al sistema. Esto trae como consecuencia la necesidad de agregar la opción -nostartfiles al momento de invocar gcc.