【基础】.text .global _start和_start

① .text

.text部分是处理器开始执行代码的地方,指定了后续编译出来的内容放在代码段【可执行】

arm-linux-gcc编译器的关键词


② .global

.global关键字用来让一个符号对链接器可见,可以供其他链接对象模块使用;告诉编译器后续跟的是一个全局可见的名字【变量/函数名】

.global _start让_start符号成为可见的标识符,这样链接器就知道跳转到程序中的什么地方并开始执行程序。


③ _start

_start是一个函数的起始地址,也是编译、链接后程序的起始地址。

  • 由于程序是通过加载器来加载的,必然要找到_start名字的函数,因此_start必须定义成全局的,以便存在于编译后的全局符号表中,供其他程序【如:加载器】寻找到。

Linux寻找这个_start标签作为程序的默认进入点。

相关文章
相关标签/搜索