(1)、(2)
(3)
一般来说,PSP是256个字节,当程度生成了可执行文件以后,在执行的时候,先将程序调入内存,这个时候DS中存入程序在内存中的段地址,紧接着是程序的一些说明,比如说程序占用多大空间等等,这就是PSP,一般PSP占256个字节,然后才是真正的程序地址,将CS指向这里,IP设为0000,为什么一般CS要比DS大10H,就是因为这个原因,简单说:DS存放的是程序段地址,由于PSP的存在,真正要执行的地址是DS再加上256个字节。
以本例程的DS和CS为例,我们可以发现DS = 075A,CS = 076A,由此可得数据段首地址(真正的内存物理地址)为DS×16 + 0 = 075A0H,代码段首地址(真正的内存物理地址)为CS×16 + 0 = 076A0H,二者相差100H,恰好证明了这其中有2^8 = 256个存储单元,也即有256字节的存储空间被PSP段使用。
解释:上述数据段的第一个存储单元(设为1单元)的地址是075A:0000(对应的实际物理地址为075A0),假设我们现在有一个地址为075A:0010的存储单元(设为2单元,对应的实际物理地址为075B0),显然我们可以发现从单元1到单元2的上面一个单元共有16个存储单元,而075B0H - 075A0H = 10H = 00010000B = 2^4D = 16D,表明了这之间有16个字节的存储空间,据此我们可简单推算出:从075A0到076A0上面那个单元共有256字节的存储空间为PSP段。
王爽汇编语言 实验3
- 本文链接: http://silence-tang.github.io/2021/09/19/王爽汇编语言 实验3/
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
------------------本文已结束感谢阅读~------------------