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

text,bss, data 段中 text不可写由哪位高手去保证

2012-04-26 
text,bss, data 段中 text不可写由谁去保证大侠们,我知道程序在编译后会生成在, text,bss, data等段。 text

text,bss, data 段中 text不可写由谁去保证
大侠们, 
我知道程序在编译后会生成在, text,bss, data等段。 text 是代码段,只读。 那我不知道这是不可写是由谁去保证? 编译器? 如果我们编译一个IMAGE, 在程序中强制修改LOad以后的内存内容,会怎么样?

[解决办法]
你生成a.out以后跟你的编译器就没有什么关系拉,所以test段的安全保障是由OS保证的 如果a.out被修改就会出现断错误
[解决办法]
我觉得吧,会有这些段是编译器的功劳,当然,在使用编译器的时候,用户根据自己所使用的芯片的特性和设计在编译器选项中设定.text,.bss,.data的起始地址。一般是将芯片的只读区域(rom)作为.text的存储区。至于用户愣是要在写代码的时候,修改.text的内容,也木有办法,如果.text是在rom区,则写了也白写,因为写不进去,所以程序不能实现所需的功能,程序可能会崩溃的;如果.text是在ram区,则写操作会修改.text内容,程序会崩溃。所以用户可以自己写防护代码,防止在.text段进行写操作。
个人理解,若有误导请海涵。。
[解决办法]
操作系统的装载器、内存管理器加上cpu

热点排行