汇编源程序的组织结构
来源:互联网 发布:淘宝付款系统异常 编辑:程序博客网 时间:2024/05/16 10:34
一般情况下,一个汇编源程序需要定义3个段:
.text
.data
.bss
这个源自UNIX的传统(和a.out的结构有关)。
不过在现在的LINUX里,这三个部分不叫“段”(segment),而叫作“区”(section)。
这可能和Linux使用ELF(Execution and Linking Format)有关吧:
一个ELF格式的可执行程序通常划分为如下几个部分:
.text、.data 和 .bss,其中
.text 是只读的代码区,
.data 是可读可写的数据区,
.bss 则是可读可写且没有初始化的数据区。
代码区和数据区在ELF中统称为section,根据实际需要你可以使用其它标准的section,也可以添加自定义section,但一个 ELF 可执行程序至少应该有一个.text 部分。
汇编(器)指示:
源程序里的这些以“.”英文句点开头的.text,.data,.bss等是用来向汇编程序传递信息的,叫做“汇编(器)指示”。
.text告诉汇编器,其后的内容属于代码区,只读属性。
.data告诉汇编器,其后的内容属于具有初值的数据区,可读可写。
.bss告诉汇编器,其后的内容属于不具有初值的数据区,可读可写。
当汇编器遇到一个新的声明某个区的汇编指示时,老的区就结束了,同时开始一个新的区。
.text,.data,.bss等汇编指示是可以多次反复出现的。
此外还有其他一些特定的区:
.rdata
存放只读数据(常量),英文叫做read-only data。
MIPS还有专门的缺省使用$gp寻址的区:
.sdata
具有初值的小数据区,可读可写。英文叫做small data。
.sbss
不具有初值的数据区,可读可写。英文叫做small common objects.
.lit8
存放64位浮点数(implicit-constant)。
.lit4
存放32位浮点数(implicit-constant)。
.sdata,.sbss,.lit8,.lit4都缺省使用$gp寻址。
相同类型的区最后都会被连接程序按类型合并到一起,在可执行文件里组成单一的.text区,.data区和.bss区。
.text
.data
.bss
这个源自UNIX的传统(和a.out的结构有关)。
不过在现在的LINUX里,这三个部分不叫“段”(segment),而叫作“区”(section)。
这可能和Linux使用ELF(Execution and Linking Format)有关吧:
一个ELF格式的可执行程序通常划分为如下几个部分:
.text、.data 和 .bss,其中
.text 是只读的代码区,
.data 是可读可写的数据区,
.bss 则是可读可写且没有初始化的数据区。
代码区和数据区在ELF中统称为section,根据实际需要你可以使用其它标准的section,也可以添加自定义section,但一个 ELF 可执行程序至少应该有一个.text 部分。
汇编(器)指示:
源程序里的这些以“.”英文句点开头的.text,.data,.bss等是用来向汇编程序传递信息的,叫做“汇编(器)指示”。
.text告诉汇编器,其后的内容属于代码区,只读属性。
.data告诉汇编器,其后的内容属于具有初值的数据区,可读可写。
.bss告诉汇编器,其后的内容属于不具有初值的数据区,可读可写。
当汇编器遇到一个新的声明某个区的汇编指示时,老的区就结束了,同时开始一个新的区。
.text,.data,.bss等汇编指示是可以多次反复出现的。
此外还有其他一些特定的区:
.rdata
存放只读数据(常量),英文叫做read-only data。
MIPS还有专门的缺省使用$gp寻址的区:
.sdata
具有初值的小数据区,可读可写。英文叫做small data。
.sbss
不具有初值的数据区,可读可写。英文叫做small common objects.
.lit8
存放64位浮点数(implicit-constant)。
.lit4
存放32位浮点数(implicit-constant)。
.sdata,.sbss,.lit8,.lit4都缺省使用$gp寻址。
相同类型的区最后都会被连接程序按类型合并到一起,在可执行文件里组成单一的.text区,.data区和.bss区。
- 汇编源程序的组织结构
- 汇编源程序的组织结构
- Win32汇编源程序的结构(1)
- Win32汇编源程序的结构(2)
- Win32汇编源程序的结构(3)
- nopCommerce的组织结构
- 技术部的组织结构
- 程序的组织结构
- Tomcat的组织结构
- Preference的组织结构
- 邮件的组织结构
- 产生指定源程序文件的汇编代码
- B+树的组织结构
- sap组织结构的学习
- FAT文件系统的组织结构
- Orchard 源代码的组织结构
- Wave文件的组织结构
- 组织结构的基本类型
- Android:自动检测软件升级
- 指针函数
- .set伪指令(mips)
- 为Button 添加图片---WPF
- SQL多表联查优化
- 汇编源程序的组织结构
- AVR还是要加一个外部振荡电路为好
- 程序员真的“编码太多没时间思考”了吗
- Android 4.0 +MyEclipse 9 整合开发环境搭建
- Android 日历提供器(三)
- 恒压源电路设计
- 九度1113:二叉树 解题报告
- 启动Outlook时提示ESET NOD32的Outlook插件错误
- 数据库扩展