.globl _start
:
-
汇编中以
.
开头的名称并不是指令的助记符,而是
汇编指示 / 伪操作
,不是真正的指令。 -
.globl
是一个
关键字
,让一个符号对链接器可见,可被其它链接对象模块使用。
在
.globl _start
中,
.globl
告诉汇编器,
_start
这个符号要被链接器用到,所以要在目标文件的符号表中标记它是一个
全局符号
。
如果一个符号没有用
.globl
声明,就表示这个符号不会被链接器用到。 -
_start
是一个
符号
,是
汇编程序的默认入口标号
。符号在汇编中代表一个地址。汇编程序中的符号经过汇编器的处理之后,所有的符号被替换成它所代表的地址值。(汇编器在翻译汇编程序时会计算每个数据对象和每条指令的地址,当看到一个符号定义时,就把它
后面一条指令的地址
作为这个符号所代表的地址。而
_start
这个符号又比较特殊,它所代表的地址是整个程序的入口地址) -
c 语言中我们可以通过变量名来访问一个变量,就是读写某个地址的内存单元;我们通过函数名调用一个函数,其实就是跳转到该函数第一条指令所在的地址,所以
c 语言中的变量名和函数名都是符号
,本质上是代表内存地址的。