section .data
    msg db "Hello, World!", 10      ; 10 is the ASCII code for a newline
    msg_len equ $ - msg             ; Calculate the length of the string

section .text
    global _start

_start:
    ; syscall: sys_write (1)
    mov rax, 1          ; system call number (sys_write)
    mov rdi, 1          ; file descriptor (1 = stdout)
    mov rsi, msg        ; pointer to the string
    mov rdx, msg_len    ; length of the string
    syscall             ; call the kernel

    ; syscall: sys_exit (60)
    mov rax, 60         ; system call number (sys_exit)
    mov rdi, 0          ; exit code 0
    syscall             ; call the kernel
