segment .data
msg: db "Hello World!",0x0a ; String to print
len: equ $-msg ; Length of the string
segment .text
global main ; Announce main to the linker
extern write, exit
main:
push rbp
mov rbp, rsp
sub rsp, 32 ; shadow parameter space
mov r8d, len ; Argument 3 is the length to write
mov rdx, msg ; Argument 2 for the write call
mov ecx, 1 ; Argument 1 for the write
call write
xor ecx, ecx ; 0 return status = success
call exit