section .data
msg:    db      "Hello World!",0x0a,0

        section .text
        global  main
        extern  printf
main:
        push    rbp
        mov     rbp, rsp
        frame   2, 0, 1
        sub     rsp, frame_size    ; shadow space for register parameters
        lea     rcx, [msg]  ; parameter 1 for printf
        call    printf
        xor     eax, eax    ; return 0
        leave
        ret