521cOFF文件的基本单元段 段( sections)是cOFF文件中最重要的概念。 个段就是最终在存储器映象中占据连续空间的 个数据或代码块。目标文件中的每一个段都是 相互独立的。一般地,COFF目标文件包含3个缺 省的段:text段、data段、bss段 段可以分为两大类,即已初始化段和未初始化段。 如图5-2所示为目标文件中的段与目标系统中存储 器的关系
5.2.1 COFF文件的基本单元——段 ◼ 段(sections)是COFF文件中最重要的概念。 一个段就是最终在存储器映象中占据连续空间的 一个数据或代码块。目标文件中的每一个段都是 相互独立的。一般地,COFF目标文件包含3个缺 省的段:text段、data段、bss段。 ◼ 段可以分为两大类,即已初始化段和未初始化段。 如图5-2所示为目标文件中的段与目标系统中存储 器的关系
Object File Target Memory bss RAM data EEPROM ROM 图5-2目标文件中的段与目标存储器的关系 回本
图5-2 目标文件中的段与目标存储器的关系 返回本节
522汇编器对段的处理 1.未初始化段 未初始化段主要用来在存储器中保留空间,通常将它们定 位到RAM中。这些段在目标文件中没有实际内容,只是 保留空间而已。程序可以在运行时利用这些空间建立和存 储变量。未初始化段是通过使用bss和 sect汇编伪指令 建立的,两条伪指令的句法分别为: bss 符号,字数 符号 sect“段名”,字数
5.2.2 汇编器对段的处理 1.未初始化段 ◼ 未初始化段主要用来在存储器中保留空间,通常将它们定 位到RAM中。这些段在目标文件中没有实际内容,只是 保留空间而已。程序可以在运行时利用这些空间建立和存 储变量。未初始化段是通过使用.bss和.usect汇编伪指令 建立的,两条伪指令的句法分别为: .bss 符号,字数 符号 .usect“段名” ,字数
2.已初始化段 已初始化段包含可执行代码或已初始化数据。这 些段的内容存储在目标文件中,加载程序时再放 到TMs320c54X存储器中。三个用于建立初始化 段的伪指令句法分别为: text[段起点] data[段起点] sect“段名”[,段起点]
2.已初始化段 ◼ 已初始化段包含可执行代码或已初始化数据。这 些段的内容存储在目标文件中,加载程序时再放 到TMS320C54X存储器中。三个用于建立初始化 段的伪指令句法分别为: .text [段起点] .data [段起点] .sect “段名”[,段起点]
3.命名段 命名段就是程序员自己定义的段,它与缺省 的text、data和bss段一样使用,但与缺省段分 开汇编。data段不同的存储器中,将未初始化的 变量汇编到与.bss段不同的存储器中。产生命 名段的伪指令为: 符号 sect“段名”,字数 sect“段名”[,段起点]
3.命名段 ◼ 命名段就是程序员自己定义的段,它与缺省 的.text、.data和.bss段一样使用,但与缺省段分 开汇编。 data段不同的存储器中,将未初始化的 变量汇编到与.bss段不同的存储器中。产生命 名段的伪指令为: 符号 .usect “段名” ,字数 .sect “段名”[,段起点]