global _start
section .data
hello: db 'Hello, World!',10 ; 'Hello, World!' plus a linefeed character
helloLen: equ $-hello ; Length of the 'Hello world!' string
section .text
_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
; your code goes here
je exit
exit:
mov eax, 01h ; exit()
xor ebx, ebx ; errno
int 80h
Z2xvYmFsIF9zdGFydAoKc2VjdGlvbiAuZGF0YQoJaGVsbG86ICAgICBkYiAnSGVsbG8sIFdvcmxkIScsMTAgICAgOyAnSGVsbG8sIFdvcmxkIScgcGx1cyBhIGxpbmVmZWVkIGNoYXJhY3RlcgoJaGVsbG9MZW46ICBlcXUgJC1oZWxsbyAgICAgICAgICAgICA7IExlbmd0aCBvZiB0aGUgJ0hlbGxvIHdvcmxkIScgc3RyaW5nCgpzZWN0aW9uIC50ZXh0Cgpfc3RhcnQ6Cgltb3YgZWF4LDQgICAgICAgICAgICA7IFRoZSBzeXN0ZW0gY2FsbCBmb3Igd3JpdGUgKHN5c193cml0ZSkKCW1vdiBlYngsMSAgICAgICAgICAgIDsgRmlsZSBkZXNjcmlwdG9yIDEgLSBzdGFuZGFyZCBvdXRwdXQKCW1vdiBlY3gsaGVsbG8gICAgICAgIDsgUHV0IHRoZSBvZmZzZXQgb2YgaGVsbG8gaW4gZWN4Cgltb3YgZWR4LGhlbGxvTGVuICAgICA7IGhlbGxvTGVuIGlzIGEgY29uc3RhbnQsIHNvIHdlIGRvbid0IG5lZWQgdG8gc2F5CgkgICAgICAgICAgICAgICAgICAgICA7ICBtb3YgZWR4LFtoZWxsb0xlbl0gdG8gZ2V0IGl0J3MgYWN0dWFsIHZhbHVlCglpbnQgODBoICAgICAgICAgICAgICA7IENhbGwgdGhlIGtlcm5lbAoJOyB5b3VyIGNvZGUgZ29lcyBoZXJlCglqZQkJZXhpdAoKZXhpdDoKCW1vdgkJZWF4LCAwMWgJCTsgZXhpdCgpCgl4b3IJCWVieCwgZWJ4CQk7IGVycm5vCglpbnQJCTgwaAo=