assembly - 为什么在 x86 的 Linux 上不调用 sys_exit(0) 时会出现段错误?
问题描述
我正在编写一些简单的 x86 程序集,当我运行以下代码时
extern printf
global main
section .data
fmt: db "%d", 0x0a, 0
section .text
main:
mov rax, 1
; sys_exit(0)
mov rdi, 0
mov rax, 60
syscall
一切运行良好。
但是,如果我在评论之后留下所有内容,; sys_exit(0)
那么我会收到分段错误。
需要调用 sys_exit 还是发生了其他事情?
解决方案
推荐阅读
- c# - 在鼠标移动时更改光标位置
- matplotlib - Seaborn:排列多个 Facetgrids
- java - UnitTesting Spring Boot中未解决的依赖关系
- python-3.x - 根据条件使用列表中的元素格式化字符串
- javascript - 检测 FlatList onBeginningReached - React Native
- python - Python文件和文本处理
- sql - 创建交叉表/矩阵 KPI 报告,显示一段时间内打开记录的计数
- javascript - 如何将变量从打字稿传递到嵌入式 JS?
- css - 悬停时的圆形图像占据 100% 的高度和宽度
- swift - 在继续单元测试之前等待主队列被调度