Código
section .text global _start ;parida que necesita el linker xD _start: ;entry point pop ebx pop ebx pop ebx pop ebx mov eax,5 add ebx,ecx mov edx,len ;Longitud del mensaje mov ecx,msg ;Mensaje que vamos a escribir mov ebx,1 ;file descriptor (stdout) mov eax,4 ;llama de sistema numero 4 (sys_write) int 80h ;call al kernel para que ejecute las sentencias pushad ;Guardamos registros pushfd ;Guardamos flags mov eax, 3 ;sys_read(3) mov ebx, 0 ;stdin (0) mov ecx, esi ;Guardamos la string en esi mov edx, 1 ;nnumero de bytes a leer int 80h ;llamada al kernel de linux popfd ;re-establecemos flags popad ;re-establecemos registros ret ;retorno para llamar al procedimiento mov edx,length2 ;longitud del mensaje mov ecx,esi ;mensaje a escribir mov ebx,1 ;file descriptor (stdout) mov eax,4 ;llamada a sistema numero 4 (sys_write) int 80h ;linux esta aqui! mov eax,1 ;llamada a sistema numero 1 (sys_exit) int 80h ;llamada al kernel, linux acabará con la ejecución del proceso section .data msg db 'Hola mundo!',10 ;la primera cadena mensaje2 db 'a',10 len equ $ - msg ;longitud de nuestra cadena length2 equ $ - mensaje2
Saludos