主存储器存储单元的地址和内容
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主存储器存储单元的地址和内容
存储系统由主存储器(也称为内存储器)和辅助存储器(也称为外存储器)组成,存储器是用来存放程序和数据的装置。
主存储器(简称主存)的基本存储单元是位,它能容纳一个二进制的0和1。整个主存由许多存储位构成,这些存储位每8位组合成一个字节,每相邻的2
个字节组成一个字,相邻的两个字组成一个双字。为了区别这些不同的字节(或字)存储单元,每一单元都被指定一个编号,称为此单元的物理地址(简称PA)。PC机的主存是按8位字节编址的,即以字节作为最小单位。假定主存容量为1M 字节,则它的最低地址为00000H,最高地址为0FFFFFH。
主存储器的读取规则:“高高低低”规则,即高地址对应高字节,低地址对应低字节。
【例 1.5.6】图为主存部分单元状态,试从中读取数据
[解:]
如上图所示,字节单元(00000)的内容为 12H ,字单元(00000)的内容为(00001,00000) = 9812H,字单元(00001)的内容为(00002,00001) = 0AC98H。
注意:如果16进制数的第一个为字符A~F,需在此16进制数前加一数字0,以便与其它同名的变量名及寄存器名相区别。
2、物理地址的形成
8086/8088 CPU的地址线有20根,直接寻址220=1MB。而 8086/8088 CPU的字长为16位,直接寻址216=64KB,无法寻址1MB。为此,8086/8088采用了存储器地址分段的方法。
将整个存储器分成许多逻辑段,每个逻辑段的容量最多为64KB,允许它们在整个存储器空间浮动,各个逻辑段可以紧密相连,也可以重叠。对于任何1
个物理地址来说,可以唯一地被包含在1个逻辑段中,也可以被包含在多个相互重叠的逻辑段中,只要能得到它所在段的首地址和段内的相对地址,就可以对它进行访问。在 8086/8088存储空间中,从0地址开始,把每16个连续字节的存储空间称为小节。为了简化操作,逻辑段必须从任一小节的首地址开始。这样划分的特点是:在16进制表示的地址中,最低位为0(即20位地址中的低4位为0)。在1MB的地址空间中,共有64KB小节。
综上所述,分段的原则如下:
(1) 每个段的最大长度为64KB;
(2) 段的首地址能被16整除。
8086/8088中,每一个存储单元都有一个唯一的20位地址,称此地址为该存储单元的物理地址。CPU访问存储器时,必须先确定所要访问的存储单元地址才能取得该单元的内容。20位的物理地址由16位的段地址和16位的段内偏移地址计算得到。段地址是每一逻辑段的起始地址,必须是每个小节中的首地址,其低4位一定是0,于是在保留段地址时,可以只取段地址的高16位。偏移地址则是在段内相对于段起始地址的偏移值。因此任一存储单元物理地址的计算方法如下:
物理地址 = 16 D× 段地址 + 段内偏移地址
在微型计算机中,设有4个存放段地址的寄存器,称为段寄存器。它们是代码段寄存器CS,数据段寄存器DS,附加段寄存器ES,堆栈段寄存器SS。