.global _start //exposes a symbol called start to the assembler .intel_syntax noprefix //See: https://www.youtube.com/watch?v=6S5KRJv-7RU //See: https://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/ _start: //write call (sys_write) mov rax,1 //sys_write system call mov rdi, 1 //unsigned int fd = 1 (stdout) lea rsi,[hello_world] //load effective address (lea) into rsi of hello_world data mov rdx, 14 //size_t count excluding null terminator syscall //exit call mov rax, 60 mov rdi, 33 //return result (must be "rdi" not "rdx" - how are these registers named?) syscall //apprently int 80h interrupt is also syscall? hello_world: .asciz "Hello, World!\n"