segment .data msg: db 'Hello World!',0x0a ; String to print len: equ $-msg ; String length segment .text global main ; Tell linker about main extern write, exit main: push rbp mov rbp, rsp sub rsp, 32 ; Must leave room for 4 register params ; Up to 4 register parameters ; in rcx, rdx, r8, r9 mov r8, len ; Parameter 3 for write lea rdx, [msg] ; Parameter 2 for write mov ecx, 1 ; Parameter 1 (fd) call write xor ecx, ecx ; 0 return = success call exit