存储器知识点小结 下载本文

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所示。

地址低端

地址高端

3.单元地址与内容

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

内容

单元地址

图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位物理地址。

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

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

为了使8086CPU能访问到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。