Assembly FASM linxu x86_64分段故障(堆芯转储)
这是我的linux x86_64源代码: 这非常简单,但我得到了这个错误(分段错误(堆芯转储)) 我还将“main”改为“ret”,我又犯了这个错误!!!!我不认为这是关于“主要”代码Assembly FASM linxu x86_64分段故障(堆芯转储),assembly,fasm,Assembly,Fasm,这是我的linux x86_64源代码: 这非常简单,但我得到了这个错误(分段错误(堆芯转储)) 我还将“main”改为“ret”,我又犯了这个错误!!!!我不认为这是关于“主要”代码 FORMAT ELF64 EXECUTABLE SEGMENT READABLE EXECUTABLE ENTRY main main: mov rax, 3 ; SYS_CLOSE mov rdi, 0 syscall 我正在
FORMAT ELF64 EXECUTABLE
SEGMENT READABLE EXECUTABLE
ENTRY main
main:
mov rax, 3 ; SYS_CLOSE
mov rdi, 0
syscall
我正在使用“./fasm.x64 prog.asm”命令编译此文件
我的操作系统=>'Fedora 31 x86_64'上面的代码试图关闭文件句柄零,这充其量是可疑的,然后它继续执行代码,直到程序结束,因此崩溃 因此,您观察到的情况与您的“linux x86_64源代码”所做的完全一致
(如果您试图完成的不是崩溃,那么请提出另一个问题,解释您试图实现的目标。)问题是您的
main
函数无法返回任何内容。您需要通过调用exit
系统调用显式退出程序。stdin
(fd 0)通常在进程启动时打开。您可以运行/my\u程序