微型计算机的基本工作原理.doc_第1页
微型计算机的基本工作原理.doc_第2页
微型计算机的基本工作原理.doc_第3页
微型计算机的基本工作原理.doc_第4页
微型计算机的基本工作原理.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章 微型计算机的基本工作原理教学重点:8086的操作和时序教学难点:8086的操作和时序教学时数:6学时教学内容:8086指令系统,初级程序设计,8086的操作和时序,控制部件和微型计算机功能的扩展,现代技术在微型计算机中的应用教学方式:课堂讲授教学要求:(1) 了解8086的指令系统,并能理解初级的程序。(2) 理解指令周期的概念,重点掌握8086指令操作与时序的关系。(3) 掌握控制部件的构成及其在时序控制下的工作步骤。微型计算机的基本功能可概括为“三能一快”:能运算(加、减、乘、除)、能判别(大于、小于、等于、真、假)及能决策(根据判别来决定下一步的工作)。但所有这些“能”的过程都必须建立在“快”的基础上才能有实际意义。 2.1 微型计算机结构的简化形式为了易于分析和理解,我们先来介绍一个简化了的微型计算机,如图2.1(a)所示。其硬件结构特点如下:(1) 功能简单:只能做两个数的加减法。(2) 内存量小:只有一个168PROM(可编程序只读存储器)。(3) 字长8位:二进制8位显示。(4) 手动输入:用拨动开关输入程序和数据。图2.1 微型计算机的简化结构及功能分解图1. 程序计数器PC计数范围由00001111(用十六进制可记作由0F)。每次运行之前,先复位至0000。当取出一条指令后,PC应加1。2. 存储地址寄存器MAR接收来自PC的二进制程序号,作为地址码送至PROM去。3. 可编程序只读存储器PROM原理:每条横线与竖线都有一条由开关和二极管串联的电路将它们连接起来。因此,只要拨动开关,即可使该数据位置1或置0,从而达到使每个存储单元“写入”数据的目的。因而称这种ROM为可编程序ROM。PROM实际上同时具有RAM和ROM的功能。4. 指令寄存器IRIR从PROM接收到指令字(当LI=1,ER=1),同时将指令字分送到控制部件CON和W总线上去。指令字是8位的: MSBLSB最高有效位 最低有效位左4位为最高有效位(高4位),称为指令字段;右4位为最低有效位(低4位),称为地址字段。5. 控制部件CON其功能如下:(1) 每次运行之前,CON先发出CLR=1,使有关的部件清0。此时: PC=0000 IR=00000000(2) CON有一个同步时钟,能发出脉冲CLK到各个部件去,使它们同步运行。(3) 在CON中有一个控制矩阵CM,能根据IR送来的指令发出12位的控制字: CON=CPEPLMER LIEILAEASUEULBLO根据控制字中各位的置1或置0情况,计算机就能自动地按指令程序而有秩序地运行。6. 累加器A用以储存计算机运行期间的中间结果。它能接收W总线送来的数据(LA=1),也能将数据送到W总线上去(EA=1)。它还有一个数据输出端,将数据送至ALU去进行算术运算。这个输出是双态的,即是立即地送去,而不受E门的控制。7. 算术逻辑部件ALU它只是一个二进制补码加法器减法器。当SU=0,ALU,进行加法A+B;当SU=1,ALU,进行减法A-B,即(A+B)。8. 寄存器B将要与A相加减的数据暂存于此寄存器。它到ALU的输出也是双态的,即无E门控制。9. 输出寄存器O计算机运行结束时,累加器A中存有答案。如要输出此答案,就得送入O。此时EA=1,LO=1,则O=A。典型的计算机具有若干个输出寄存器,称为输出接口电路。这样就可以驱动不同的外围设备,如打印机、显示器等。10. 二进制显示器D这是用发光二极管(LED)组成的显示器。每一个LED接到寄存器O的一位上去。当某位为高电位时,则该LED发光。因为寄存器O是8位的,所以这里也由8个LED组成显示器。这种结构,一般可分成3大部分,如图3.1(b)的功能分解图所示:(1) 中央处理器CPU(包括PC,IR,CON,ALU,A及B);(2) 记忆装置M(MAR及PROM);(3) 输入输出IO(包括O及D,D也可称为其外围设备)。中央处理器(central processing unit,缩写为CPU)是将程序计数功能(PC)、指令寄存功能(IR)、控制功能(CON)、算术逻辑功能(ALU)以及暂存中间数据功能(A及B)集成在一块电路器件上的集成电路(IC)。实用上的CPU要比这里的图例更为复杂些,但其主要功能是基本一样的。存储器M(memory)在此图例中只包括存储地址寄存器(MAR)及可编程存储器(实际还包括了地址译码功能),这就是微型计算机的“内存”。实际的“内存”要包括更多的内容(如ROM,RAM及EPROM等)和更大的存储容量。输入及输出接口(IO)是计算机实行人机对话的重要部件。本简例中的输入将是人工设定PROM而没有输入电路接口只有输出有接口(O)。实际微型计算机的输入设备多为键盘,输出则为监视器(即电视屏显示器),因而必须有专用的输出接口电路。2.2 指令系统指令系统就是用来编制计算程序的一个指令集合。在未编制出计算程序之前,计算机是一堆无价值的电路硬件。这台微型机有5条指令,即其控制部件能完成一系列例行程序以执行5种命令:LDA将数据装入累加器A;ADD进行加法运算;SUB进行减法运算;OUT输出结果;HLT停机。这5条指令在一起就称为这台计算机的指令系统。不同型号的微处理机的指令系统是不同的,指令的条数也不相同。2.3 程序设计微型计算机并不认识助记符的意义,因此必须将指令清单中每一条指令都翻译成二进制码机器码。另外,存储器中既要写入计算程序,也要存放参与运算的数据,因此,还得决定存储器中的存储单元应如何分配,这称为存储空间分配。总之,程序设计中要包括:(1) 编制汇编语言写的程序;(2) 助记符的翻译;(3) 存储器的分配等几部分。下面就来介绍一下程序设计的步骤。2.3.1 先要有一个操作码表这是由计算机制造厂提供的翻译表,它是每个助记符与二进制码的相应对照表。由于我们的计算机很简单,只有5个助记符,列成对照表,比较简单易记。但如果指令系统很庞大的话,此表也就很大而不易记忆,因而就必须有特殊的方法才能迅速可靠地使用它。2.3.2 存储器分配在本微型机中就是要把PROM中的16个存储单元分配成两个区:程序存放区(指令区)和数据存放区(数据区)。2.3.3 将源程序翻译成目的程序方法是:根据助记符与二进制的对照表(操作码表)将每条指令的助记符译成二进制码,并将存储单元符号写成地址码(即R00000,R10001,R91001)。2.3.4 程序及数据的输入方法我们的PROM既有ROM的特点(即可以存入但以后不许再改写而只许读出)也有RAM的特点(即可随时写入数据,也可读出数据)。PROM分成两区,指令区一旦存入指令,就不许再改(除非要计算的公式改变了)。数据区是可以随时存入要参与运算的数据,并在计算过程中可以取出来。但无论如何,在第一次安排程序时,都得把程序和数据存入。其方法就是将PROM的每个数据位的开关拨向置0或置1的位置即可。图2.3就是这样一个PROM的输入装置,其左边是控制板上安装的开关,每个存储单元有8个开关。16个存储单元(R0RF),就共有816=128个开关。右边是根据例题而拨动的开关状态:置0开关拨向断开的方向置1开关拨向接通的方向其旁边的括弧内语句代表每一条指令,而数字是参与运算的十进制数据。将目的码输入到PROM中去,即拨动控制板上的开关,使其成图2.3右边的状态。其中打的开关是随意状态,因为用不着,例如在OUT1110 HLT1111 中,就是因为这两条指令并不访问任何存储单元,所以R5及R6的高4位(将要送至控制部件的)有二进制码指令,而低4位(代表数据存放的存储地址)可以随意。图2.3 计算机的控制板上的输入装置及置位结果2.4 执行指令的例行程序在程序和数据装入之后,启动按钮将启动信号传给控制部件CON,然后控制部件产生控制字,以便取出和执行每条指令。执行一条指令的时间为一个机器周期。机器周期又可分为取指周期和执行周期。取指过程和执行过程机器都得通过不同的机器节拍。在这些节拍内,每个寄存器(PC,MAR,IR,A,B,O等)的内容可能发生变化。2.4.1 环形计数器及机器节拍环形计数器的各位的状态如图2.4所示。图24 环形计数器产生的机器节拍从图3.4的波形来看,环形计数器的各位输出端Q0Q5的电位就是机器节拍T0T5的电位,由于时钟脉冲是经过反相器再接到环形计数器(图中的“汽泡”表示非门)的CLK端的,所以各节拍之间的转换是在时钟脉冲的负边缘开始的。由图可见,如将环形计数器的输出看做是一个字T,则:T=T5T4T3T2T1T0这就是一个6位的环形字。它用以控制6条电路,使它们依次轮流为高电位,T0,T1,T2,T3,T4和T5称为机器的节拍。2.4.2 取指周期及执行周期取出指令的过程需要3个机器节拍,在清零和启动之后第1个节拍为T0。下面将以上节的例题为例来仔细考查一下在每个节拍内各个寄存器的内容应如何变化,因而控制器应发出什么样的控制字。(1) 地址节拍(T0=1)在T0=1时,应将PC的内容(即第1个地址码)送入MAR(并通过MAR而达到PROM),所以,此时应有:EP=1,即PC准备放出数据LM=1,即MAR准备接收数据因此,控制部件应发出的控制字为:CON=CPEPLMERLIEILAEASUEULBLO =0 1 1 0 0 0 0 0 0 0 0 0(2) 储存节拍(T1=1)在T1=1时,应将PROM中由PC送来的地址码所指定的存储单元中的内容送到IR,同时IR立即将其高4位送至控制部件。因此,在此节拍到来之前,即应准备好:ER=1即PROM准备放出数据LI=1即IR准备接收数据所以:CON=000110000000(3) 增量节拍(T2=1)在T2=1时,应使PC加1,做好下一条指令的取指准备。因此,CP=1,即命令PC计数。所以,此时:CON=100000000000这3节拍称为取指周期。这样3节拍的取指周期,对任何一条指令都是一样的。因为任何一条指令都是沿着这个程式而将指令取出来,再将其高4位送入控制部件去进行分析,决定下面应如何执行,所以下面的3节拍就称为执行周期。由控制部件分析的结果,对本微型机来说,共有5类执行的程序:LDA将数据装入A;ADD将数据与A相加;SUB将数据与A相减;OUT将数据从A输出;HLT停机,即停发CLK脉冲。执行这样的每个程序也需要3拍(T3,T4,T5),这种程序是由厂家编好了的,所以称为例行程序。我们以LDA例行程序为例,考查一下在此3节拍中,各个寄存器的内容应有何变化。(4) T3=1时,IR已将从PROM来的指令码的高4位送至控制部件进行分析。此高4位是与LDA相应的二进制码“0000”,控制部件经过分析后就发出命令:EI=1,将IR的低4位送至W总线;LM=1,MAR接收此低4位数作为地址并立即送至PROM;所以CON=001001000000在上例题中,送至PROM的地址就是R9的二进制码地址(1001)。也就是说,第1次访问PROM的是其指令区,第2次访问的是其数据区。(5) T4=1应将PROM的数据区的存储单元(如R9,即1001)的内容送入累加器A,即:ER=1,PROM准备放出数据;LA=1,A准备接收数据;即CON=000100100000(6) T5=1因为T4=1时,已将数据存放入A中,所以,LDA的例行程序就已完成,T5节拍就变成空拍,即有:CON=000000000000虽然LDA的例行程序用不着这个节拍,但别的例行程序(如ADD,SUB等)还是用得着的,为了使每条指令的机器周期都是一样长,即6个节拍,所以在不需6个节拍的指令语句中都给加一个空拍以补足之。这样的机器称为固定周期的计算机。LDA 9H,这条指令执行完成后,就接着执行ADD AH的指令。现在存于PC中的内容PC+1,即0001了。2.5 控制部件控制部件是使计算机能够成为自动机的关键部件。它包括下列主要部件:(1) 环形计数器(RC);(2) 指令译码器(ID);(3) 控制矩阵(CM);(4) 其他控制电路。2.5.1 指令译码器由4个位组成的编码,必须被译成一个信号,即译为某一控制线为高电位,这就是译码器的任务。译码器可以由与门和非门组成,图2.5就是一个4位译码器。图2.5 4位译码器电路2.5.2 控制矩阵译码器能将编码信息译成某一控制线为高电位,试看一下上面的控制字。每一节拍大都要求两个控制字位为高电位,虽然也有一位为高电位的(如CP=1),但只要不是一位的就要求2位或3位为高电位。而控制字有12位,每一指令要执行6拍,每拍均有不同的位为高电位,这又如何实现呢?控制矩阵就是为了解决这个问题的,所以控制矩阵是控制部件的核心。2.5.3 其他控制电路上面由环形计数器、控制矩阵及指令译码器组成的部分称为控制器。为了实现控制动作,还需要下述几个电路(见图2.7)。图2.7 控制部件的结构图时钟脉冲发生器这一般可分成两部分,即时钟振荡器及射极跟随器。前者一般都是石英晶体振荡器,后者则用以降低输出电阻,以便有更大的电流输出,因为时钟脉冲发生器同时要推动很多的电路。运行停车触发器这个电路既接收来自按钮的“运行”脉冲信号,也接收来自指令译码器的“HLT”停车信号,而其输出就去启动时钟振荡器。“启动”和“清除”按钮这是由人直接操作的主令电器,命令都是由此开始的。2.6 微型计算机功能的扩展图2.8就是功能扩充了的微型计算机的结构图,其基本结构和简易微型计算机是相似的。现在只将其中与其有区别的组件逐个加以介绍。图2.8 功能扩充后的微型计算机的结构图1. 子程序计数器SC这是第2章的微型计算机所没有的。它本身也相当于一个程序计数器,不过它不由CLR来清零,而可由LS门来置数。一旦置数,即为其子程序的开始地址。SC的位数为8位。LS“装入”的可控门;ES“输出”的可控门,即3态门;CS“计数”的控制端。2. 程序计数器PCPC增加了一个LP门,这就使得PC可以接收跳转地址。这样扩大了计算机的功能,换句话说,PC可以不从00H开始。3. 随机存取存储器RAM这里不用PROM而用RAM作为主存储器。RAM的存储单元为256个,字长为12位。因为可以随机存取,故除MAR(存储地址寄存器)外,还得有一个MDR(存储数据寄存器)。4. 控制部件CON此CON将要产生一个28位的控制字:5. 算术逻辑部件ALU上面的简化型计算机的ALU是一个二进制补码加法器减法器。只有算术加法及减法两种运算。其控制端为Su,即只有一位。这里的控制端改为S=S3S2S1S0,即有4位。4位则有16种可能的组合,本机只用其中的10种,以得到3种算术运算和7种逻辑运算。6. 变址寄存器X这是新增加的一种寄存器,它可以用指令使其加1或减1:INX加1指令助记符,其控制端符号为INX;DEX减1指令助记符,其控制端符号为DEX。7. 指令寄存器IR这是一个12位的寄存器,其指令字段和地址字段的位数不是固定不变的。在访问存储器指令(MRI)和转移指令的执行期间,高4位代表指令字段,低8位代表地址字段。所以高4位要被送到CON去分析,而低8位被送到W总线上去: (MSB4位) (LSB8位) CONW总线在运算指令执行期间,高8位代表指令字段,而低4位可为任意数,因为它不代表任何意义: (MSB8位)(LSB4位) CON不用关于访问存储器的指令、转移指令和运算指令的定义,下面会讨论到。本机共有28条指令,可分为3类:1. 访问存储器指令(memory reference instruction,缩写为MRI)这些指令都与存储器的读写有关,所以其地址字段必须为8位(256个地址)。访问存储器指令的特点是:由指令寄存器分出来的地址字段(8位的地址字段)必定进入MAR(存储器地址寄存器),这就能够识别出MRI这类指令。2. 转移指令可用以改变程序的顺序。有了这类指令,就可以在规定的某种条件下将程序进程向前转移或向后转移,也可跳过若干条指令语句或去执行某个子程序之后再回至下一条指令语句。转移指令也有六条,其特点是由指令寄存器IR分出来的地址段(8位)将进入程序计数器PC(即LP=1),或子程序计数器(LS=1)。3. 逻辑运算指令这类指令的特点是与存储器及程序计数器都无关,而是与ALU、A及B寄存器有关。控制器只要接到1111的高4位,即知为运算指令,然后控制器再辨认选择码以确定进行什么样的运算。由于这些运算都是在ALU和A,B之间进行的,所以不需地址码。低4位可以不置数,由其随机存在,并不产生任何影响。2.7 初级程序设计举例所谓初级程序是包括下列的程序模式:(1) 简单程序程序一统到底,中间没有任何分支和跳转。(2) 分支程序程序进行中,根据判断程序执行的不同结果而分别跳转至其他子程序去。(3) 循环程序程序进行过程中,在某一循环体进行若干次循环运行,然后再继续前进。(4) 调用子程序程序进行至某一阶段,调用存储于某存储区中的某个子程序,然后返回至主程序继续运行下去。【例2.1】程序清单 R0LDA6H把(R6)装入A去R1SUB7H从(A)减去(R7)R2JAM5H(A)=负,则转移至R5R3JAZ5H(A)=0,则转移至R5R4JMP1H无条件转移至R1R5HLTR625(10)R79(10)此程序清单包括指令区和数据区。数据区只存入两个数据:25(10)和9(10),它们分别存于存储单元R6和R7中。指令区是要求将R6中的内容减去R7中的内容,当其差0时,即停止运算,否则继续作多次的减法运算。执行结果:我们按上面程序清单的次序,看每条指令执行的结果应是什么。指令 执行结果R0LDA6H A中的内容=25(10)R1SUB7H A中的内容=25-9=16(10)R2 JAM 5H 因为(A)负,所以不转移R3JAZ 5H 因为(A)0,所以不转移R4 JMP 1H 无条件转移至R1从R1起再执行第2次:R1SUB7H A中的内容=16-9=7(10)R2JAM5H 因为(A)负,所以不转移R3JAZ 5H 因为(A)0,所以不转移R4JMP1H 无条件转移至R1从R1起再执行第3次:R1 SUB7H A中的内容=7-9=-2(10)R2 JAM5H 因为(A)=负,所以转移至R5R5 HLT 停机这个程序可以理解为求(R6)(R7)的除法运算。这里是259,除的结果应得商为2,余数为7。程序循环运行的次数即为商,余数即为第2次执行后A中的内容。【例2.5】子程序设计设计一个计算x2+y2+z2=?的计算程序。如将此子程序存于以RF2为起始地址(其地址为F2H,即1111 0010的存储单元)的一个区域中,则可设计其程序如下: RF2STACAH;将(A)暂存于RCARF3LDXCAH;将(RCA)装入XRF4CLA;累加器A清零循环程序RF5DEX;(X)减1循环体RF6ADDCAH;将(RCA)与(A)相加x个x相加的过程RF7JIZF9H;(X)=0,则转移到RF9RF8JMPF5H;无条件转移至RF5RF9BRB;返回主程序RC6RC6xRC7y;被运算的数据RC8zRC9RCA;运算过程暂存地址2.8 控制部件的扩展图2.10就是控制器的结构图。图2.10 控制器的结构图中的Aminus,Azero,Xminus和Xzero来自累加器A和变址寄存器X。指令译码器接收来自指令寄存器IR的8位指令字段(高8位)而译成28条指令线。其中HLT将直接被引到运行停车触发器。其他27条指令则被引至控制矩阵,以便产生28位的控制字。为了控制转移,还应有转移电路,它们的组成也是用门电路。下面只对控制矩阵作一简要说明, 28条指令在六拍周期内产生6个控制字,每个控制又有28个位,此控制矩阵的繁杂程度是可想而知的。取指周期的3个时钟节拍的动作可以由控制字中为高电位的位来表示:T0Ep=1,LM=1(PCMARRAM);T1ME=1,LI=1(RAMIR);T2CP=1,(PC+1PC)。执行周期的3个节拍,对于每条指令将有很大的不同,即其控制字中各位的置位情况各不相同。助记符LDA。这是一条指令的操作码(0000),如有一个操作数为nn(8位),则形成的指令为LDA nn。设此指令存于RAM的指令区的第一个存储单元(其地址为0000 0000),nn是指参与运算的数据在RAM的数据区中所在的存储单元的地址(n代表一个4位二进制数),这条指令的执行过程是:(1) 在T0拍时则程序计数器PC将地址0000 0000送到MAR,同时也到RAM去。(2) 在T1拍时ME=1 LI=1则RAM中地址为0000 0000的存储单元的内容(0000nn)被读出而送到控制器(0000部分)及指令寄存器IR(nn部分)中去。(3) 在T2拍时CP=1 则程序计数器加1。(4) 在T3拍时EI=1 LM=1则指令寄存器IR的内容(nn)被送到MAR,同时也进入RAM去。因nn是在数据区,所以其内容(mmm)(m也是一个4位二进制数)是一个要送入累加器A中去的数据。(5) 在T4拍时ME=1 LA=1则RAM中地址为nn的存储单元的内容(mmm)被送到累加器A中去。(6) 在T5拍时:没有任何操作,所以是空操作。这就是一条指令的执行过程。对于其他的指令,如SUB,LDX等都可根据上例从表中知道各个组件的操作情况和信息流通的方向。2.9 现代技术在微型计算机中的应用科学技术的发展对微型计算机的要求是无止境的,一台最完美的8位微处理器因受到它的字长(8位)、地址线的数量(16条)以及某些复杂指令不能一次完成,要编写子程序来实现等局限性,不能满足工业生产和科研工作中的复杂运算。新的16位和32位微处理机要比8位机强得多。1632位微型计算机与8位机相比,除明显的处理字长不同外,还有下述优点:(1) 更多的寄存器: 可以减少CPU对存储器访问的次数,提高处理速度。(2) 增加了存储器寻址范围: 1632位地址字允许CPU直接对几百万个地址进行寻址。(3) 更大的指令系统: 包括16位乘法及除法指令,块移动指令等,简化了编程,从而加快了软件的开发。(4) 更高的速度: 采用了新型的半导体技术,时钟频率可以从过去8MHz提高到33MHz至1GHz,因此加快了微处理器的运算速度。(5) 新的结构: 微型计算机的内部组织管理采用微程序控制及流水线技术,加快了取指周期和访问存储器操作。在某些情况下运行的速度,达到数量级的增长。(6) 存储器管理的改进: 在硬件上增添高速缓冲存储器,而在软件上采用虚拟存储技术,使微型计算机中执行最慢的存储器存取速度得到很大的提高;也使微型计算机的主存储器在不扩大容量的情况下达到成倍的增加。2.9.1 流水线技术以往的计算机都采用冯诺伊曼(VonNeumann)结构,通常称为存储程序的运行方式,即程序的指令顺序地储存在存储器中,这些指令被逐条取出并执行。这种串行运行,重复取出和执行顺序指令是以往计算机的主要局限性。根本解决的方法是采用并行操作。流水线技术是一种

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论