global main main: push ebp mov ebp,esp jmp .L1 db '--START--',0 .L1: push ebp mov ebp,esp mov ecx,esp sub esp,6 mov [ecx+0],byte 'H' mov [ecx+1],byte 'E' mov [ecx+2],byte 'L' mov [ecx+3],byte 'L' mov [ecx+4],byte 'O' mov al,byte 5 add al,5 mov [ecx+5],byte al push dword 6 ; size of "string" push ecx ; address of buffer mov eax,0 push dword 1 ; stdout = 1 push dword 0 ; "return address" mov al,4 ; SYS_write int 80h ; system call add esp,byte 16 or eax,eax leave ret jmp .L2 db '--END--',0 .L2: leave ret