微型计算机原理与接口技术(2)讲解

上传人:我** 文档编号:114742955 上传时间:2019-11-12 格式:PPT 页数:27 大小:960KB
返回 下载 相关 举报
微型计算机原理与接口技术(2)讲解_第1页
第1页 / 共27页
微型计算机原理与接口技术(2)讲解_第2页
第2页 / 共27页
微型计算机原理与接口技术(2)讲解_第3页
第3页 / 共27页
微型计算机原理与接口技术(2)讲解_第4页
第4页 / 共27页
微型计算机原理与接口技术(2)讲解_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《微型计算机原理与接口技术(2)讲解》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术(2)讲解(27页珍藏版)》请在金锄头文库上搜索。

1、第二章 8086系统结构 Inter 8086CPU是16位微处理器,它有16根数据线和20根地址 线,直接寻址空间为220,即1MB。8088CPU内部结构与8086基本相 同但对外数据总线只有8条,称为准16位微处理器。 2.1 8086CPU结构 微型计算机工作时,总是先从存储器中取指令,需要的话再取 操作数,然后执行指令,送结果。通常8位机是串行执行的,而16位 机可并行操作。8086 CPU由总线接口部件BIU和指令执行部件EU组成, BIU和EU的操作是并行的。总线接口部件BIU完成取指令,读操作数, 送结果,所有与外部的操作由其完成。而指令执行部件EU从BIU的指 令队列中取出指

2、令,并且执行指令,不必访问存储器或I/O端口。若 需要访问存储器或I/O端口,也是由EU向BIU发出访问所需要的地址, 在BIU中形成物理地址,然后访问存储器或I/O端口,取得操作数送 到EU,或送结果到指定的内存单元或I/O端口。这种并行工作方式, 大大提高了系统工作效率。 图2-1给出了8086CPU的内部结构框图。,一、8086CPU的内部结构 1.总线接口部件BIU 总线接口部件BIU是8086CPU与外部(存储器和I/O端口)的接口,它 提供了16位双向数据总线和20位地址总线,完成所有外部总线操作。 BIU具有下列功能:地址形成、取指令、指令排队,读/写操作数和 总线控制。它由下列

3、各部分组成: (1)16位段地址寄存器: CS代码段寄存器 DS数据段寄存器 ES附加段寄存器 SS堆栈段寄存器 (2)16位指令指针寄存器IP:存放下一条要执行指令的偏移地址。 (3)20位物理地址加法器:将16位逻辑地址变换成存储器读/写所需要 的20位物理地址,实际上完成地址加法操作。 (4)6字节指令队列:预放6字节的指令代码。 (5)总线控制逻辑:发出总线控制信号。,2.指令执行部件EU 指令执行部件EU完成指令译码和执行指令的工作。 它由以下几个部分组成: (1)算术逻辑运算单元ALU:完成8位或16位的二进制运算,16位暂存器 可暂存参加运算的操作数。 (2)标志寄存器PSW:存

4、放ALU运算结果特征。 (3)寄存器组:4个通用16位寄存器AX、BX、CX、DX,其中AX又称累加器。 4个专用16位寄存器:源变址寄存器SI、目的变址寄存器DI、堆栈指针 寄存器SP、基址指针寄存器BP。 (4)EU控制器:取指令控制和时序控制部件。 二、寄存器结构 寄存器结构用来存放运算过程中所需要的操作数地址、操作数及中间结 果。8086微处理器内部包含有4组16位寄存器,它们分别是通用寄存器 组,指针和变址寄存器,段寄存器,指令指针及标志位寄存器。如图2 2所示。,1.通用寄存器组 8086/8088CPU在指令执行部件EU中有4个16位通用寄存器,它们是AX、 BX、CX和DX,用

5、以存放16位数据或地址。也可分为8个8位寄存器来使 用,低8位是AL、BL、CL和DL,高8位为AH、BH、CH和DH,只能存放8位 数据,不能存放地址。通用寄存器通用性强,对任何指令它们具有相同 的功能。为了缩短指令代码的长度,在8086中,某些通用寄存器用作专 门用途。例如,串指令中必须用CX寄存器作为计数寄存器,存放串的长 度,这样在串操作指令中不必给定CX的寄存器号,缩短了串操作指令代 码的长度,这种寻址方式也称为“隐含寻址”。同样,AX、BX、DX寄存器 又可分别称为累加器、基址寄存器及数据寄存器。 2.指针和变址寄存器 8086/8088CPU中,有一组4个16位寄存器,它们是基址

6、指针寄存器BP, 堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI。这组寄存器 存放的内容是某一段内地址偏移量,用来形成操作数地址,主要在堆栈 操作和变址运算中使用。,BP和SP寄存器称为指针寄存器,与SS联用,为访问现行堆栈段提供方便。 通常BP寄存器在间接寻址中使用,操作数在堆栈段中,由SS段寄存器与 BP组合形成操作数地址。即BP中存放现行堆栈段中一个数据区的“基址” 的偏移量,所以称BP寄存器为基址指针。 SP寄存器在堆栈操作中使用,PUSH和POP指令是从SP寄存器得到现行堆 栈段的段内地址偏移量,所以称SP寄存器为堆栈指针,SP始终指向栈顶。 寄存器SI和DI称为变址寄存器

7、,通常与DS一起使用,为访问现行数据段 提供段内地址偏移量。在串指令中,其中源操作数的偏移量存放在SI中, 目的操作敷的偏移量存放在DI中,SI与DI的作用不能互换,否则传送地 址相反。在串指令中,SI、DI均为隐含寻址,此时,SI和DS联用,DI和 ES联用。 3.段寄存器 8086/8088CPU可直接寻址1MB的存储器空间,直接寻址需要20位地址码, 而所有内部寄存器都是16位的,只能直接寻址64KB,因此采用分段技术 来解决。将1MB的存储空间分成若干逻辑段,每段最长64KB,这些逻辑 段在整个存储空间中可浮动。,8086/8088CPU内部设置了4个16位段寄存器,它们分别是代码段寄

8、存器 CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES,由它们给出 相应逻辑段的首地址,称为“段基址”。段基址与段内偏移地址组合形成 20位物理地址,段内偏移地址可以存放在寄存器中,也可以存放在存储 器中 。 代码段内存放可执行的指令代码,数据段和附加段内存放操作的数据, 通常操作数在现行数据段中,而在串指令中,目的操作数指明必须在现 行附加段中。堆栈段开辟为程序执行中所要用的堆栈区,采用先进后出 的方式访问它。各个段寄存器指明了一个规定的现行段,各段寄存器不 可互换使用。程序较小时,代码段、数据段、堆栈段可放在一个段内, 即包含在64KB之内,而当程序或数据量较大时,超过了64KB

9、,那么可以 定义多个代码段或数据段、堆栈段、附加段。现行段由段寄存器指明段 地址,使用中可以修改段寄存器内容,指向其它段。有时为了明确起见, 可在指令前加上段超越的前缀字节,以指定操作数所在段。 4.指令指针寄存器 8086/8088CPU中设置了一个16位指令指针寄存器IP,用来存放将要执行 的下一条指令在现行代码段中的偏移地址。程序运行中,它由BIU自动,将其修改,使IP始终指向下一条将要执行的指令的地址,因此它是用来 控制指令序列的执行流程的,是一个重要的寄存器。8086程序不能直接 访问IP,但可以通过某些指令修改IP的内容。例如,当遇到中断指令或 调用于程序指令时,8086自动调整I

10、P的内容,将IP中下一条将要执行的 指令地址偏移量人栈保护,待中断程序执行完毕或子程序返回时,可将 保护的内容从堆栈中弹出到IP,使主程序继续运行。在跳转指令时,则 将新的跳转目标地址送入IP,改变它的内容,实现了程序的转移。 5.标志寄存器PSW 16位标志寄存器PSW用来存放运算结果的特征,常用作后续条件转移指 令的转移控制条件。其中7位没有用,9个标志位分成两类:一类为状态 标志,表示运算后结果的状态特征,它影响后面的操作。状态标志有6 个:CF、PF,AF、ZF、,CF和OF。另一类为控制标志,用来控制CPU操作, 控制标志有3个:TF、IF和DF。PSW寄存器的具体格式如下图所示:,

11、2.2 8086CPU的引脚及其功能 8086/8088CPU根据它的基本性能,应包括20条地址线,16条数据线,加 上控制信号,电源和地线,芯片的引脚比较多。但由于制造工艺的限制, 8086/8088CPU芯片采用40条引脚的双列直插式封装,因此部分引脚采 用了分时复用的方式。 另外8086/8088CPU可以工作在两种工作模式(最小模式和最大模式), 最小模式用于单机系统。系统中所需要的控制信号全部由8086直接提供。 最大模式用于多处理机系统,系统中所需要的控制信号由总线控制器 8288提供。这样,24脚31脚的8条引脚在两种工作模式中具有不同的 功能,下面简要地介绍8086/8088

12、CPU各引脚的功能。 一、8086/8088CPU在最小模式中引脚定义 二、8086/8088CPU在最大模式中引脚定义 三、8088与8086CPU的不同之处,8088CPU的内部结构及外部引脚功能与8086CPU大部分相同。主要不同之 处如下: 1.8088的指令队列长度是4个字节,指令队列中只要出现一个空闲字节 时,BIU就会自动访问存储器,取指令来补充指令队列。(8086要在指令 队列中至少出现2个空闲字节时,才预取后续指令)。 2.8088CPU中,BIU的总线控制电路与外部交换数据的总线宽度是8位, 总线控制电路与专用寄存器组之间的数据总线宽度也是8位,而EU的内 部总线是16位,

13、这样,对16位数的存储器读/写操作要两个读/写周期才 可以完成。 3.8088外部数据总线只有8条,所以分时复用的地址/数据总线为AD7 AD0;而AD15AD8成为仅传递地址信息的A15A8。 4.8088中,用 信号代替 信号, 低电平时选通存储器, 高电平时选通I/O接口。 5.8088中,只能进行8位数据传输, 信号不需要了,改为 ,与 一起决定最小模式中的总线周期操作。 下表指出了具体的组合关系。,2.3 8086存储器组织 一、存储器地址的分段 1.存储器地址的分段 在存储器中是以字节为单位存储信息的,每个存储单元有唯一的地址来 确定。8086/8088系统有20根地址线可寻址1M

14、B字节的存储空间,即对存 储器寻址要20位物理地址,而8086为16位机,CPU内部寄存器只有16位, 可寻址64KB。因此8086系统把整个存储空间分成许多逻辑段,每段容量 不超过64KB。8086系统对存储器的分段采用灵活的方法,允许各个逻辑 段在整个存储空间中浮动,这样在程序设计时可使程序保持相对的完整 性。段和段之间可以是连续的(整个存储空间分成16个逻辑段),也可以 是分开的或重叠的。如图27所示:,任何一个存储单元的实际地址,都是由段地址及段内偏移地址两部分组 成,从图27可以看出,任何一个存储单元,可以在一个段中定义,也 可定义在两个重叠的逻辑段中,关键看段的首地址如何指定。IB

15、M PC机 对段的首地址有限制规定必须从每小段的首地址开始,每16字节为一 小段,所以段起始地址必须能被16整除才行。,2.物理地址形成 8086系统将段地址放在段寄存器中,称为“段基址”。有4个段寄存器, 分别为代码段寄存器CS,数据段寄存器DS,附加段寄存器ES和堆栈段寄 存器SS。 段内“偏移地址”指出了从段地址开始的相对偏移位置。它可以放在指令 指针寄存器IP中,或16位通用寄存器中。 逻辑地址:存储器的任一个逻辑地址由段基址和偏移地址组成,都是无 符号的16位二进制数,程序设计时采用逻辑地址。 物理地址:存储器的绝对地址,从00000FFFFFH,是CPU访问存储器的 实际寻址地址,

16、它由逻辑地址变换而来。物理地址计算如下所示: 物理地址段基址16偏移地址 因为段基址指每段的起始地址,它必须是每小段的首地址,其低4位一 定为0,所以在实际工作时,是从段寄存器中取出段基址,将其左移4位, 再与16位偏移地址相加,就得到了物理地址,此地址在CPU的总线接口 部件BIU的地址加法器中形成。,3.逻辑地址来源 逻辑地址来源如下表所示: 二、8086存储器的分体结构 8086系统中,1MB的存储空间分成两个存储体:偶地址存储体和奇地址存 储体,各为512KB,示意图如图2-10所示:,存储器中存放的信息称为存储单元的内容,例如存储单元 00100H中的内容为34H,表示为(00100H)34H。一个字在存 储器中按相邻两个字节存放,存入时以低位字节在低地址,高 位字节在高地址的次序存放,字单元的地址以低位地址表示。 例:(00100H)1234H,(00103H)0152H在内存中放的位置 如右图示。从中可以看出,一个字可以从偶地址开始存放,也 可以从奇地址开始存放,但8086CPU访问存储器时,都是以字

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号