[英]Segmentation Fault: 11 Assembly
为什么我从以下代码中得到分段错误?
.text
.globl start
start:
pushq %rbp
movq %rsp, %rbp
movq $0xBEEFF00DBEEFF00D, %rax
pushq %rax
movq $0xF00DBEEFF00DBEEF, %rax
pushq %rax
movq %rbp, %rsp
popq %rbp
ret
错误:
Segmentation fault: 11
如果start
是程序的切入点,则无法ret
到OS;否则,将无法ret
。 您应该_exit
。
在您可能正在使用的Linux(x86-64)上,请执行此操作,而不要使用ret
:
movq $60, %rax # %rax = _exit() system call
xorq %rdi, %rdi # %rdi = 0 normal program return code
syscall
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.