存储器知识点小结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CPU工作的实质即为不断从内存中取指令并执行指令的过程。

一、8086CPU构成

CPU的工作:取指令和执行指令

1.CPU内部两大功能部件:总线接口部件BIU和执行部件EU(2部件并行工作提高了CPU的工作效率)

重点:理解2个独立功能部件的分工和协同配合关系。

理解BIU内地址加法器的作用,理解指令队列的作用。

2.掌握CPU内部寄存器的作用

包括:通用寄存器AX,BX,CX,DX,BP,SP,SI,DI

段寄存器CS,DS,SS,ES

指令指针寄存器IP

标志寄存器FLAG

二、存储器的基础知识

1.物理地址

8086的存储器是以字节(即每个单元存放8位二进制数)为单位组织的。8086CPU具有20条地址总线,所以可访问的存储器地址空间容量为220即1M字节(表示为1MB)。每个单元对应一个唯一的20位地址,对于1MB存储器,其地址范围用16进制表示为00000H~0FFFFFH,如图1所示。

地址低端

地址高端

图1 1MB存储器地址表示

物理地址:存储器的每个单元都有一个唯一的20位地址,将其称为物理地址。

2.字节地址与字地址

存储器内两个连续的字节,定义为一个字,一个字中的每个字节,都有一个字节地址,每个字的低字节(低8位)存放在低地址中,高字节(高8位)存放在高地址中。字的地址指低字节的地址。各位的编号方法是最低位为位0,一个字节中,最高位编号为位7;一个字中最高位的编号为位15。

字数据在存储器中存放的格式如图2所示。

地址低端

地址高端

图2 字数据在存储器中的存放

3.单元地址与内容

内容

单元地址

图3

如图3,地址是00100H 的字节单元的内容为27H,表示为(00100H)= 27H。

图3中字数据3427H存放在地址是00100H和00101H的两个字节单元中,其中低字节27H在低地址的字节单元00100H中,高字节34H在高地址的字节单元00101H中,字数据3427H的地址是低地址00100H。地址是00100H的字单元的内容为3427H,表示为(00100H)= 3427H

可见一个地址既可作字节单元的地址,又可作字单元的地址,视使用情况而定。

总结:

字节单元:(00100H)=27H

字单元:(00100H)=3427H

设寄存器DS=0000H,

用MOV指令访问字节单元:MOV AL,[0100H]

用MOV指令访问字单元: MOV AX,[0100H]

三、存储器的分段

1.为什么要分段

8086CPU有20位地址总线,可寻址的最大内存空间达1M字节,地址范围为00000H-0FFFFFH。内存中每个字节单元有唯一的20位物理地址,CPU存取内存中的程序和数据必须使用20位物理地址。

问题:8086 CPU访问1MB空间的内存必须有20位地址,而其内部的寄存器均为16位的,那么在传输地址时一次只能传输16位地址,即只能访问64K 字节地址空间。

8086 CPU应如何提供20位地址,以寻址1MB内存?

2.如何分段

为了使8086 CPU能访问到1MB内存空间中任何一个单元,8086巧妙地采用了地址分段方法(即将1MB空间分成若干个逻辑段),从而将寻址范围扩大到了1MB。

分段的规则:

(1)为了能在1MB空间内进行全范围寻址,即可访问到1MB存储器的任何一个存储单元,把lMB存储器分成若干段(segment),每一段最大为64KB。

(2)在分段时,要求段起始单元的20位物理地址的低4位全为0(即是16

的整数倍),写成十六进制,最后一位应是0,即XXXX0H (X 为任一个十六进制数码)。

图4 分段示意图

分析:既然段起始地址的低4位为零,则只需将段起始地址的高16位保存到CPU 内部的寄存器中(保存段起始地址的寄存器称之为段寄存器)

3.有关内存地址的概念

段基址:将段起始地址的高16位称为段基址。

偏移量:段内各存储单元相对段的起始单元都有一个距离,称为段内偏移量,又称偏移地址或有效地址(EA )。

因段的大小不超过64KB ,所以段内任何一个单元距离段首的偏移量均在0000H-FFFFH 之间,即偏移量可以用一个16位二进制数表示。

总结:段基址决定了一个段在内存的开始位置(即段首地址),偏移地址描述了该单元与段首的距离。

可见,由段基址与偏移地址可描述出一个单元在内存的空间位置。例如:一个单元所在段的段基址为1234H ,该单元与段首的距离为2,该单元在内存的位置表示如图5。

图5 内存单元的物理地址与逻辑地址表示 12340H-----段首(物理地址表示) 地址低端

地址高端

该单元所在的段基址为1234H , 它距离段首偏移2个单元 逻辑地址表示:1234H :0000H 逻辑地址表示:1234H :0002H

把1MB的存贮空间分成若干个逻辑段以后,对一个段内的任意存贮单元,都可以用两部分地址来描述,一部分地址为段基址,另一部分为段内偏移地址(有效地址EA),段基址和段内偏移地址都是16位二进制数,常用4位十六进制数表示。

逻辑地址:使用段基址:偏移地址表示内存单元的地址形式称为逻辑地址。

上图中单元的地址用逻辑地址表示为:1234H:0002H

4.物理地址的形成

在整个1M地址空间中,存储单元的物理地址等于段起始地址加上段内偏移。

已知某存储单元的逻辑地址,该单元的物理地址PA的计算方法为:物理地址=段基址*10H+段内偏移地址。

8086CPU 的总线接口部件BIU中设置了地址加法器Σ,它用来完成物理地址的计算。

图6 物理地址的形成

例1:某单元的逻辑地址为1234H:1000H,则该存储单元的物理地址为:物理地址(PA)=段地址*10H+EA=1234H* 10H+1000H=12340H+1000H=13340H 例2:物理地址为00020H单元,其逻辑地址可以有:0000H:0020H和0001H:

相关文档
最新文档