DOS系统中EXE程序加载过程

2023-07-29,,

1、在内存区中寻找一段容量足够的空闲内存区。
2、这段内存区的前256字节中,创建一个称为程序段前缀(PSP)的数据区。
3、这段内存区256字节之后,将程序装入,程序的地址被设为SA+10H : 0,为了更好的区分PSP和程序,DOS将其划分到不同的地址段:
1. 空闲内存区:SA : 0
2. PSP区:SA : 0
3. 程序区:SA+10H : 0

注意:PSP区和程序区的物理地址连续,但是段地址不同。

4、将该内存区的段地址存入DS中,初始化其他相关寄存器后,设置CS : IP指向程序入口。
程序加载后,DS中存储着程序所在内存区的段地址,偏移地址为0。
在DS : 0 - DS : 100H (256字节,SA : 0 - SA+10H : 0) 这一段内存中存放着PSP,
DOS利用PSP和程序进行通信
DS : 100H (SA+10H : 0) 之后存放的是程序的机器码

学习记录,内容可能不够严谨,不足之处还望指出

DOS系统中EXE程序加载过程的相关教程结束。

《DOS系统中EXE程序加载过程.doc》

下载本文的Word格式文档,以方便收藏与打印。