assembly - GNU 汇编中的“_main”和“main”有什么区别?
问题描述
我刚刚开始自己学习汇编我的
第一步是编写一个返回'10'的汇编代码并检查它$echo $?
.global _main
_main:
pushq %rbp
movq %rsp, %rbp
movl $10, %eax
leave
ret
这是我的第一个名为“ass.s”的代码版本,
不知何故,当我用它编译时,gcc ass.s
它不断返回错误,然后是
/usr/lib/gcc/x86_64-linux-gnu/5/../../../ x86_64-linux-gnu/crt1.o:在函数_start': (.text+0x20): undefined reference to
main'
当我将代码固定为
.global main
main:
pushq %rbp
movq %rsp, %rbp
movl $10, %eax
leave
ret
它运作良好。
这两个代码之间的唯一区别是_main
,main
谁能解释为什么_main
会发生错误?
解决方案
推荐阅读
- c++ - 递归回溯以查找所有子集
- python - 这个 Big-O 表示法对于这个简单排序函数 (Python) 是否正确?
- javascript - 打开时关闭所有项目
- python - 在我的 Mac 上安装 pyobjc 时出现错误
- java - 如何打印 ArrayList?- 爪哇
- node.js - 为什么我无法为 discord.js 安装“quick.db”?
- typescript - 如何以编程方式解析 Typescript 定义文件?
- laravel - 如何解决“外部文件更改同步可能很慢:当前 inotify(7) 监视限制太低。” 在 PhpStorm 中
- reactjs - 对 Firestore 中的多个集合进行查询
- angular - 父子组件之间的角度通信