section .text
global _start ;must be declared for linker (ld)
_start: ;tell linker entry point
mov edx,len ;message length
mov ecx,msg ;message to write
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80 ;call kernel
mov eax,1 ;system call number (sys_exit)
int 0x80 ;call kernel
section .data
msg db 'Hello, world!',0xa ;our dear string
len equ $ - msg ;length of our dear string
c2VjdGlvbgkudGV4dAogICAgZ2xvYmFsIF9zdGFydAkJCTttdXN0IGJlIGRlY2xhcmVkIGZvciBsaW5rZXIgKGxkKQoKX3N0YXJ0OgkJCQkJO3RlbGwgbGlua2VyIGVudHJ5IHBvaW50CgoJbW92CWVkeCxsZW4JO21lc3NhZ2UgbGVuZ3RoCgltb3YJZWN4LG1zZwk7bWVzc2FnZSB0byB3cml0ZQoJbW92CWVieCwxCTtmaWxlIGRlc2NyaXB0b3IgKHN0ZG91dCkKCW1vdgllYXgsNAk7c3lzdGVtIGNhbGwgbnVtYmVyIChzeXNfd3JpdGUpCglpbnQJMHg4MAk7Y2FsbCBrZXJuZWwKCgltb3YJZWF4LDEJO3N5c3RlbSBjYWxsIG51bWJlciAoc3lzX2V4aXQpCglpbnQJMHg4MAk7Y2FsbCBrZXJuZWwKCnNlY3Rpb24JLmRhdGEKCm1zZwlkYgknSGVsbG8sIHdvcmxkIScsMHhhCTtvdXIgZGVhciBzdHJpbmcKbGVuCWVxdQkkIC0gbXNnCQkJO2xlbmd0aCBvZiBvdXIgZGVhciBzdHJpbmcK