Assembly 创建的文件放在哪里?(AT&;T组件I/O)
我正在学习AT&T汇编创建文件。我运行了创建文本文件所需的代码,Assembly 创建的文件放在哪里?(AT&;T组件I/O),assembly,file-io,x86-64,att,Assembly,File Io,X86 64,Att,我正在学习AT&T汇编创建文件。我运行了创建文本文件所需的代码,foo.txt,但我的系统中没有文件(或者至少查找程序找不到)。那么代码是否有问题,或者文件是否隐藏在某个地方 请注意,我的pwd是/Users/mac/Desktop,代码在/Users/mac/Desktop中 代码: 它是特定于操作系统的。在Linux和POSIX系统上,在当前工作目录中创建具有相对路径(如“foo.txt”)的文件。在Linux上,用于理解程序执行的系统调用。在MacOSX上,查看AMD64 ABI(包括其系
foo.txt
,但我的系统中没有文件(或者至少查找程序找不到)。那么代码是否有问题,或者文件是否隐藏在某个地方
请注意,我的pwd
是/Users/mac/Desktop
,代码在/Users/mac/Desktop
中
代码:
它是特定于操作系统的。在Linux和POSIX系统上,在当前工作目录中创建具有相对路径(如“foo.txt”)的文件。在Linux上,用于理解程序执行的系统调用。在MacOSX上,查看AMD64 ABI(包括其系统调用)是否通过
RDI
/RSI
而不是RBX
/RCX
@doynax传递参数,谢谢您的建议,但这没有用。@Moon Cheesez:这些似乎是Linux i386系统调用号和寄存器分配。你需要计算出OSX(或FreeBSD)的等价物。根据(尽管是NASM),Mac OSXIt的操作系统特定,使用RDI/RSI
而不是RBX/RCX
是正确的。在Linux和POSIX系统上,在当前工作目录中创建具有相对路径(如“foo.txt”)的文件。在Linux上,用于理解程序执行的系统调用。在MacOSX上,查看AMD64 ABI(包括其系统调用)是否通过RDI
/RSI
而不是RBX
/RCX
@doynax传递参数,谢谢您的建议,但这没有用。@Moon Cheesez:这些似乎是Linux i386系统调用号和寄存器分配。你需要计算出OSX(或FreeBSD)的等价物。根据(尽管是NASM),对于Mac OSX来说,RDI/RSI
而不是RBX/RCX
是正确的
.data
file_name:
.asciz "foo.txt"
.text
.globl _main
_main:
pushq %rbp
movq %rsp, %rbp
movq $8, %rax # Set sys_create
leaq file_name(%rip), %rbx # Set file name to f_name
movq $0777, %rcx # Set file permissions
syscall
leave
ret