第2章-16位微处理器系统结构.ppt
文本预览下载声明
图2-10 8088最小模式下的总线形成 二、最小和最大模式下的总线形成(以8088为例) 1. 8088最小模式下的总线形成如图2-10所示。可见,20根地址线用3片8282形成,8根数据线用1片8286形成,控制总线则由CPU直接提供。 图2-11 8088最大模式下的总线形成 2. 8088最大模式下的总线形成如图2-11所示。 可以看到,地址总线和数据总线的形成与最小模式下相同,而控制总线则是由总线控制器8288间接提供。 2.3 8086/8088 系统的存储器组织 一、存储器组织 8086/8088均有20条地址线,其直接寻址能力为220=1MB。所以在一个8086/8088构成的系统中,可以有多达1M字节的存储器,按字节组织,即每个存储单元存放一个字节的数据。因此,每个单元就得有个唯一的编号,即一个20位的物理地址。于是,用十六进制数表示的存储器地址范围为00000H~FFFFFH。 图2-12 数据在存储器中的存放 字节在存储器中可存放于任何一个单元;而字(两字节)、双字(四字节)等在存储时,规定其低字节必须存放在低地址单元,高字节放在高地址单元中。如图2-12所示,从偶地址开始存放的字称为规则字(如字45A7H),而从奇地址开始存放的字称为非规则字(如字A798H) 。 图2-13 8088与存储器的连接 图2-14 8086与存储器的连接 8088 CPU因外部数据总线为8位,因此它所对应的1MB存储空间是单一的存储体,如图2-13所示。而8086 CPU外部数据总线是16位的,所以它的1MB存储空间实际上分为两个512KB的存储体,分别称为高位库和低位库。如图2-14所示,低位库与数据总线低8位D0~D7相连,每个单元地址为偶数地址;高位库与数据总线高8位D8~D15相连,每个单元地址为奇数地址。地址总线A1~A19同时对高、低位库的存储单元寻址,A0和BHE则用于库的选择,如前面的表2-2所示。 二、存储器的分段和物理地址的形成 8086/8088CPU内部存放地址信息的地址寄存器BX、IP、SP、SI、DI、以及算术逻辑单元ALU都是16位的,直接寻址范围只有216=64KB,不能产生20位的物理地址来直接寻址1MB的内存空间。 为了扩大寻址范围,8086/8088 CPU巧妙地采用地址分段的方法,将寻址范围扩大。将1MB内存空间分成若干逻辑段,每段最多64KB。各逻辑段的起始地址称为基址,它是一个能被16整除的20位地址,即低4位的二进制码必须是0,高16位地址由软件设置于段寄存器中。段内任意一个存储单元的地址,可用相对于段起始地址(基址)的偏移量来表示,这个偏移量称为段内偏移地址,是16位的,它通常存放于IP、SP、SI或DI中。 如图2-15所示,20位的物理地址是这样产生的: 物理地址=段寄存器的内容×16+偏移地址 段的基址由段寄存器CS、DS、SS和ES提供,如图2-16所示。 段的位置不受任何约束,段和段之间可以是连续的、分开的、部分重叠或完全重叠的,如图2-17所示。 图2-15 物理地址的形成 图2-16 段寄存器的使用情况 图2-17 (a)各段互不重叠 (b)各段之间有重叠 操作类型 正常来源 段基址的 其他来源 段基址 偏移地址 取指令 CS IP 无 堆栈操作 SS SP 无 存/取变量(串操作除外) DS 有效地址EA CS,ES,SS 取源串 DS SI CS,ES,SS 存/取目的串 ES DI 无 BP用作基址寄存器 SS 有效地址EA CS,ES,SS 逻辑地址来源系统约定如表2-8所示。 表2-8 逻辑地址来源系统约定 2.4 堆栈及其操作 1. 堆栈的概念 堆栈是一个按照“先进后出,后进先出”原则组织的一段特殊的存储区域。通常用于子程序调用时的参数传递和中断时的现场保护,也可用来临时存放数据。 2. 堆栈的结构 8086/8088系统的堆栈是在存储器中实现,由堆栈段寄存器SS和堆栈指针寄存器SP来定位。一个系统中可有多个堆栈,每个堆栈的空间最大为64KB。若有多个堆栈,则只有一个是当前正在使用的,称为现行堆栈。SS存放现行堆栈的基址,SP指向栈顶,其组织结构如图2-18所示。 图2-18 堆栈结构 2.5 微机系统中
显示全部