.globl _start 简介

  • Post author:
  • Post category:其他



.globl _start

:

  • 汇编中以

    .

    开头的名称并不是指令的助记符,而是

    汇编指示 / 伪操作

    ,不是真正的指令。


  • .globl

    是一个

    关键字

    ,让一个符号对链接器可见,可被其它链接对象模块使用。



    .globl _start

    中,

    .globl

    告诉汇编器,

    _start

    这个符号要被链接器用到,所以要在目标文件的符号表中标记它是一个

    全局符号



    如果一个符号没有用

    .globl

    声明,就表示这个符号不会被链接器用到。


  • _start

    是一个

    符号

    ,是

    汇编程序的默认入口标号

    。符号在汇编中代表一个地址。汇编程序中的符号经过汇编器的处理之后,所有的符号被替换成它所代表的地址值。(汇编器在翻译汇编程序时会计算每个数据对象和每条指令的地址,当看到一个符号定义时,就把它

    后面一条指令的地址

    作为这个符号所代表的地址。而

    _start

    这个符号又比较特殊,它所代表的地址是整个程序的入口地址)

  • c 语言中我们可以通过变量名来访问一个变量,就是读写某个地址的内存单元;我们通过函数名调用一个函数,其实就是跳转到该函数第一条指令所在的地址,所以

    c 语言中的变量名和函数名都是符号

    ,本质上是代表内存地址的。