segment .data
fd:     dd      0
name:   db      "sample",0
        segment .text
        global  main
        extern  open
main:
        push    rbp
        mov     rbp, rsp
        lea     rdi, [name] ; pathname
        mov     esi, 0x42   ; read-write | create
        mov     rdx, 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