-
-
wilton_gao | 当前状态:离线
总积分:123 2024年可用积分:0
注册时间: 2008-01-16
最后登录时间: 2009-09-29
-
嵌入式程序的定位
wilton_gao 发表于 2008/12/6 16:47:14 762 查看 0 回复 [上一主题] [下一主题]
手机阅读
DOS下的EXE文件是一种可重定位文件
(Re-locatableFile),它由重定位标头和装入模块组成。后者含
一段或几段程序代码,段数与类型取决于程序规模和编译时所用的内存模式,然后是
初始化与未初始化的数据及堆栈,还可能有程序排错信息。代码、数据和堆栈段地址
均是参考到程序开头的相对地址。标头放在装入模块之前,含若干定位控制信息和一
张定位表。控制信息包括EXE文件大小、标头长度、需要重定位的项数和位置、装
入模块的开头和堆栈的相对地址等。定位表是一组形式为段址:偏址的远指针,指示
装入模块中要重定位的那些段址相对于模块开头处的位置。装进RAM后,加载程序
建立起程序段前缀PSP,并根据系统当前可用RAM地址修改这些段址,对装入模
块重定位,使程序中所有参考绝对地址的量正确指向模块装入后的起始地址,然后执行