您的位置:控制工程论坛网论坛 » 嵌入式系统 » 嵌入式程序的定位

wilton_gao

wilton_gao   |   当前状态:离线

总积分:123  2024年可用积分:0

注册时间: 2008-01-16

最后登录时间: 2009-09-29

空间 发短消息加为好友

嵌入式程序的定位

wilton_gao  发表于 2008/12/6 16:47:14      761 查看 0 回复  [上一主题]  [下一主题]

手机阅读

EXE文件格式和DOS重定位 

DOS下的EXE文件是一种可重定位文件

(Re-locatableFile),它由重定位标头和装入模块组成。后者含

一段或几段程序代码,段数与类型取决于程序规模和编译时所用的内存模式,然后是

初始化与未初始化的数据及堆栈,还可能有程序排错信息。代码、数据和堆栈段地址

均是参考到程序开头的相对地址。标头放在装入模块之前,含若干定位控制信息和一

张定位表。控制信息包括EXE文件大小、标头长度、需要重定位的项数和位置、装

入模块的开头和堆栈的相对地址等。定位表是一组形式为段址:偏址的远指针,指示

装入模块中要重定位的那些段址相对于模块开头处的位置。装进RAM后,加载程序

建立起程序段前缀PSP,并根据系统当前可用RAM地址修改这些段址,对装入模

块重定位,使程序中所有参考绝对地址的量正确指向模块装入后的起始地址,然后执行

1楼 0 0 回复