gpt4 book ai didi

linux - 我的小 asm 程序有段错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:46:52 24 4
gpt4 key购买 nike

我是汇编语言的新手,这是我的小程序。

section .data
section .text

global _start
_start:
nop ; make gdb happy
; put your experiments here
mov eax,4
; put your expeirments here
nop ; make gdb happy

section .bss

这段代码是用这些命令编译的:

nasm -f elf64 -g -F stabs 001.asm -o 001.o
ld -o test 001.o

但是当我运行时,它会生成一个带有段错误的核心转储文件。
1.为什么这个小程序会出现段错误?
2.如何用核心转储文件gdb这个? enter image description here

最佳答案

您的程序不包含结束它的代码。在代码中执行完最后一个 nop 后,CPU 会继续执行其后内存中包含的任何内容,直到它崩溃。要解决此问题,请告诉操作系统终止您的进程。在 amd64 Linux 上,您可以使用以下代码:

mov eax,60  ; system call 60: exit
xor edi,edi ; set exit status to zero
syscall ; call the operating system

关于linux - 我的小 asm 程序有段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42856035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com