segment .data
a       dq      151
b       dq      310
sum     dq      0
        segment .text
        global  main
main:
        push    rbp         ; establish a stack frame
        mov     rbp, rsp
        sub     rsp, 32     ; shadow register space
        mov     rax, 9      ; set rax to 9
        add     [a], rax    ; add rax to a
        mov     rax, [b]    ; get b into rax
        add     rax, 10     ; add 10 to rax
        add     rax, [a]    ; add the contents of a
        mov     [sum], rax  ; save the sum in sum
        mov     rax, 0      ; would be better as "xor eax, eax"
        leave               ; restore the previous stack frame
        ret                 ; return