繁体   English   中英

细分错误:11个装配体

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM