《汇编语言》 第四章 第一个程序

本文详细解析了在DOS系统中程序如何被加载到内存并开始运行的具体过程,包括程序段前缀(PSP)的作用及SA+10H计算方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第四章 第一个程序

4.1 CX中存放程序的长度

Debug将程序加载到内存后,cx中存放的是程序的长度。

4.2 DOS系统加载EXE文件的过程

  1. 先找到一段起始地址为SA.0000的容量足够的内存区。
  2. 在这内存区的前256个字节中,创建一个称为程序段前缀(PSP)的数据区,DOS要利用PSP来和被加载程序进行通讯。
  3. 在这段内存区的256字节出开始,将程序装入,程序的地址被设为 SA+10H:0
  4. CS:IP也指向这个部分,这样,程序就可以开始运行了。

4.3 SA+10H的计算方法

256字节转化为16进制为100H,而物理地址=段地址*10H+偏移地址,为了更好与段的相符,计算值就交给段地址了。 10H*10H=100H,所以,让段地址+10H。

这种数学问题可不能马虎对待!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值