section .data
hello: db 'Hello, World!',10 ; 'Hello, World!' plus a linefeed character
helloLen: equ $-hello ; Length of the 'Hello world!' string
section .text
global _start
_start:
mov eax,4 ; The system call for write (sys_write)
mov ebx,1 ; File descriptor 1 - standard output
mov ecx,hello ; Put the offset of hello in ecx
mov edx,helloLen ; helloLen is a constant, so we don't need to say
; mov edx,[helloLen] to get it's actual value
int 80h ; Call the kernel
mov eax,1 ; The system call for exit (sys_exit)
mov ebx,0 ; Exit with return "code" of 0 (no error)
int 80h;
c2VjdGlvbiAuZGF0YQoJaGVsbG86ICAgICBkYiAnSGVsbG8sIFdvcmxkIScsMTAgICAgOyAnSGVsbG8sIFdvcmxkIScgcGx1cyBhIGxpbmVmZWVkIGNoYXJhY3RlcgoJaGVsbG9MZW46ICBlcXUgJC1oZWxsbyAgICAgICAgICAgICA7IExlbmd0aCBvZiB0aGUgJ0hlbGxvIHdvcmxkIScgc3RyaW5nCgpzZWN0aW9uIC50ZXh0CglnbG9iYWwgX3N0YXJ0Cgpfc3RhcnQ6Cgltb3YgZWF4LDQgICAgICAgICAgICA7IFRoZSBzeXN0ZW0gY2FsbCBmb3Igd3JpdGUgKHN5c193cml0ZSkKCW1vdiBlYngsMSAgICAgICAgICAgIDsgRmlsZSBkZXNjcmlwdG9yIDEgLSBzdGFuZGFyZCBvdXRwdXQKCW1vdiBlY3gsaGVsbG8gICAgICAgIDsgUHV0IHRoZSBvZmZzZXQgb2YgaGVsbG8gaW4gZWN4Cgltb3YgZWR4LGhlbGxvTGVuICAgICA7IGhlbGxvTGVuIGlzIGEgY29uc3RhbnQsIHNvIHdlIGRvbid0IG5lZWQgdG8gc2F5CgkgICAgICAgICAgICAgICAgICAgICA7ICBtb3YgZWR4LFtoZWxsb0xlbl0gdG8gZ2V0IGl0J3MgYWN0dWFsIHZhbHVlCglpbnQgODBoICAgICAgICAgICAgICA7IENhbGwgdGhlIGtlcm5lbAoJbW92IGVheCwxICAgICAgICAgICAgOyBUaGUgc3lzdGVtIGNhbGwgZm9yIGV4aXQgKHN5c19leGl0KQoJbW92IGVieCwwICAgICAgICAgICAgOyBFeGl0IHdpdGggcmV0dXJuICJjb2RlIiBvZiAwIChubyBlcnJvcikKCWludCA4MGg7