控制工程师论坛

嵌入式系统

嵌入式程序的定位

wilton_gao
wilton_gao

2008-12-06

EXE文件格式和DOS重定位 

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

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

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

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

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

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

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

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

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

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

回帖

评论0

首页 | 登录 | 注册 | 返回顶部↑
手机版 | 电脑版
版权所有 Copyright(C) 2016 CE China