首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

重定位程序的段请问了

2012-03-26 
重定位程序的段请教了!在DSP的CCS编译幻境中,可以比较清楚的看到C的程序最终会生成如下几个段(逻辑段):.te

重定位程序的段请教了!
在DSP的CCS编译幻境中,可以比较清楚的看到C的程序最终会生成如下几个段(逻辑段):.text; .bss;.stack; .cint; .const;
.data; .far; .sysmem; 
  好在,在CCS中,我们可以手动设置这些段落的重定位的位置,而很多的其他的编译系统中是不能手动操作这些段落的,编译和链接系统把这些操作都隐藏了,现在,我想知道在这些段中的存储的内容都是哪些?
  尤其,不理解 .cint; .const;这两个段落的内容,其他的text是程序代码,bss是全局变量和静态变量;stack是系统的栈区域,等等,请高手帮忙解释一下其他的几个段落的内容?

[解决办法]
C语言的段

未初始化块(data)

.bss 存放全局和静态变量

.ebss 长调用的.bss(超过了64K地址限制)

.stack 存放C语言的栈

.sysmem 存放C语言的堆

.esysmem 长调用的.sysmem(超过了64K地址限制)

初始化块

.text 可执行代码和常数(program)

.switch switch语句产生的常数表格(program/低64K数据空间)

.pinit Tables for global constructors (C++)(program)

.cinit 用来存放对全局和静态变量的初始化常数值(program)

.const 全局和静态的const变量初始化值和字符串常数,(data)

.econst 长.const(可定位到任何地方)(data

热点排行