文件创建权限问题汇编语言

问题描述 投票:0回答:1

我正在尝试使用x86_64 Linux汇编代码中的某些文件操作系统调用来创建文件,但我无法获得正确的权限。我要设置权限0777,即每个人都可以读取写入和执行权限,但我在文件上获得的权限对于所有者,组和其他人都是无。

我错过了什么?

我使用的汇编程序是nasm。

%macro print 2
mov rax,1
mov rdi,0
mov rsi,%1
mov rdx,%2
syscall
%endmacro


section .data
    errmsg db "Incorrect argument count",10
    errmsglen equ $-errmsg

section .bss
    temp resb 8
    sourcefile resb 8

global _start

section .text

_start:
    pop rdx

    cmp rdx, 03h
    jne error

menu:

;------------Extract filename-------------

    pop rdx
    pop rdx

    mov rsi, sourcefile
    mov rax, [rdx]
    mov [rsi], rax

;------------Open File---------

    mov rax,85
    mov rdi,sourcefile
    mov rsi,2
    mov rdx,0777
    syscall

    jmp exit

error:
    print errmsg,errmsglen
    jmp exit

exit:
    mov rax,60
    mov rdi,0
    syscall
assembly x86-64 nasm
1个回答
2
投票

前导0不表示nasm中的八进制。使用0o777或777o。

How to represent octal numbers in Assembly?

© www.soinside.com 2019 - 2024. All rights reserved.