8088系统的存储器

8088系统的存储器

8088系统是准16位系统,内部结构是16位并行运算,外部数据只有8条引脚,它对存储器的读写只能以字节为单位。其地址线有20条,寻址范围内是1MB。

4.3.18088系统存储器的结构

1.存储器的组织

8088系统是一个准16位系统:它只有8根数据线;它一次只能访问一个字节:所以,8088系统的1MB空间是一个线性的单一存储体;它与总线之间的连接方式如图4.17所示。

2.存储器分段

8088是16位机,它的所有的寄存器都是16位的。所以,它的最大存储访问空间是216=64KB。但8088有20根地址线,可以寻址的空间是20=1MB。显然,采用常规的方法,8088是不能访问1MB空间的。那么,怎样才能实现8088访问1MB地址空间呢?可以将20位地址信号放在两个寄存器中,用两个寄存器去控制访问,是否可行呢?答案是可行的。在8088中采用了把存储器分段的办法,用一个寄存器一段地址寄存器来存放段地址。

8088系统将存储器分为若干逻辑段,每一个逻辑段都是64KB,可以用16位地址寻址各个逻辑段,可以在实际的存储空间中完全分开,也可以部分重叠,甚至可以完全重叠。每一个逻辑地址的起始地址是有规律的,都是从小段(paragraph,或称做“节”)的首地址。所谓小段,就是从0地址开始,每16个字节为一小段。

存储器在系统中的实际地址(用20位表示)称做物理地址。对于任何物理地址的存储器,可以被包含在一个或多个逻辑段中。只要能够得到这个物理地址存储单元在逻辑段中的相对地址(相对于逻辑首地址的距离)和逻辑段的首地址,就可以对它进行访问。

将逻辑段的起始地址称做段地址(也称段基址,共16位),而将逻辑段中相对于段地址的偏移量称做偏移地址(也是16位)。一个存储单元的物理地址可以由段地址和偏移地址组成,计算方法如下:

16D×段地址+偏移地址=物理地址

也就是把段地址左移4位再加上偏移地址就形成物理地址。通过这个计算方法也可以看出,一个物理地址可以有不同的段地址和偏移地址。

在程序中,并不需要知道物理地址,只需要知道逻辑地址即可。在程序中访问存储器时,程序取得一个段地址和一个偏移地址,然后根据段地址和逻辑地址决定访问的存储器单元。那么,这个段地址和偏移地址是从何处而来呢?8088系统的约定如表4.8所示。表中的正常来源指系统隐含的段地址来源,其他来源指用段超越前缀指定的段地址来源,而有效地址EA是由指令给出的寻址方式计算出来的偏移地址。具体情况已在第4章的指令系统中论述,这里不再赘述。

豫ICP备19006514号 网站地图 免责声明:如果侵犯了你的权益,请发邮件至:419017772@qq.com,我们会及时删除侵权内容,谢谢合作!
error: Content is protected !!