Files
2023-11-08 14:27:21 +00:00

35 lines
517 B
NASM

format ELF64 executable
STDOUT = 1
HAPPY_EXIT_CODE = 1
SYSCALL_EXIT = 60
SYSCALL_WRITE = 1
macro print fd, buf, len
{
mov rax, SYSCALL_WRITE ; 1 -> write, which takes three arguments (below)
mov rdi, fd
mov rsi, buf
mov rdx, len
syscall
}
macro exit code
{
mov rax, SYSCALL_EXIT
mov rdi, HAPPY_EXIT_CODE
syscall
}
segment readable executable
entry main
main:
print STDOUT, msg, msg_len
exit 1
segment readable writeable
msg db "Hello, World!", 10
msg_len db $ - msg