在GNU汇编程序中,点在名称的开头表示什么?

 相信奇迹的发生 发布于 2023-02-07 16:17

以下是来自微处理器启动文件的一行,用于输入GNU汇编程序,如下所示:

.section  .isr_vector,"a",%progbits

名称开头的点是否.isr_vector意味着什么特别的?PS:此名称由GNU链接器ld引用.

编辑:

此名称还在readelf输出中显示为Section Header:

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  ...
  [ 1] .isr_vector       PROGBITS        08000000 008000 0001ac 00   A  0   0  1

randomuserna.. 11

名称前面的点是汇编程序指令本地标签.

一个汇编程序指令告诉as做一些特殊的,例如.text告诉它在目标文件(对于像代码和文字不能更改)的文本部分生成数据.还有一些指令.space,告诉它在目标文件中分配空白空间,这通常用于在bss部分中分配空间.

另一方面,我们在代码中使用了类似的本地标签.L1,但并不打算在目标文件中导出,应该从符号表中隐藏.

2 个回答
  • 但是,我不同意这是一个局部变量。只有前缀前缀的符号.L表示局部变量(局部符号的命名约定是可移植的,但某些约定与机器有关)。输入info as,导航到章节Symbols和子章节Symbol-names,您将得到它。

    我认为这只是一个符号,它是节的名称,并且该名称在链接脚本中引用。您说您在微处理器启动文件中看到了这一点。当然,链接微处理器启动文件需要链接描述文件。这个名称仅供参考,听起来可能很奇怪,但是是真实的。

    2023-02-07 16:18 回答
  • 名称前面的点是汇编程序指令本地标签.

    一个汇编程序指令告诉as做一些特殊的,例如.text告诉它在目标文件(对于像代码和文字不能更改)的文本部分生成数据.还有一些指令.space,告诉它在目标文件中分配空白空间,这通常用于在bss部分中分配空间.

    另一方面,我们在代码中使用了类似的本地标签.L1,但并不打算在目标文件中导出,应该从符号表中隐藏.

    2023-02-07 16:19 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有