segment .data
fd:     dd      0
name:   db      "sample",0
        segment .text
        global  main
        extern  open
main:
        push    rbp
        mov     rbp, rsp
        sub     rsp, 32
        lea     rcx, [name] ; pathname
        mov     edx, 0x102   ; read-write | create
        mov     r8d, 600o   ; read-write for me
        call    open
        cmp     eax, 0
        jl      error       ; failed to open
        mov     [fd], eax 
        xor     eax, eax    ; success
        leave
        ret
error:  mov     eax, 1      ; not 0 means error
        leave
        ret