.text # Inicio # Debemos exportar el punto de inicio al ligador. .global main # Por defecto main. main: movl $10, %ecx # Se va a ejecutar 10 veces #jmp ciclo ciclo: push %ecx # se guarda ecx en la pila movl $1,%ebx # Primer argumento: Manejador de archivo (stdout) movl $msg,%ecx # Segundo argumento: Apuntador al mensaje a escribir movl $len,%edx # Tercer argumento: longitud de la cadena movl $4,%eax # Llamada al sistema con el 4 (sys_write) int $0x80 # Llamada al kernel pop %ecx # se restaura ecx leyendo el dato de la pila loop ciclo jmp salir salir: movl $0,%ebx # Primer argumento: Codigo de salida movl $1,%eax # Llamada al sistema con el 1 (sys_exit) int $0x80 # Llamada al kernel .data # Seccion de datos msg: .ascii "5\n" # Se defina msg con la cadena len = . - msg # Se obtiene la longitud de la cadena