微型计算机原理与应用-第3章.ppt
《微型计算机原理与应用-第3章.ppt》由会员分享,可在线阅读,更多相关《微型计算机原理与应用-第3章.ppt(131页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 微型计算机的基本工作原理汤世平北京理工大学目 录3.1微型计算机结构的简化形式3.2指令系统3.3程序设计3.4执行指令的例行程序3.5控制部件3.6微型计算机功能的扩展3.7初级程序设计举例3.8控制部件的扩展3.9现代技术在微型计算机中的应用微型计算机的基本功能o概括为“三能一快”:n能运算(加、减、乘、除)n能判别(大于、小于、等于、真、假)n能决策(根据判别来决定下一步的工作)o“快”是基础微机基本工作原理o信息在各个部件间的流通o微型计算机n信息量很大n部件数很多n如何做到各个信息和部件之间能够“循序渐进、各得其所、有条不紊、快而不乱”呢?3.1 微型计算机结构的简化形式o如
2、图3.1(a)所示,其硬件结构特点如下:(1)功能简单:只能做两个数的加减法。(2)内存量小:只有一个168PROM(可编程序只读存储器)。(3)字长8位:二进制8位显示。(4)手动输入:用拨动开关输入程序和数据。图图 3.1主要部件o程序计数器PCo存储地址寄存器MARo可编程序只读存储器PROMo指令寄存器IRo控制部件CONo累加器Ao算术逻辑部件ALUo寄存器Bo输出寄存器Oo二进制显示器D(1)程序计数器PCo计数范围由00001111(用十六进制可记作由0F)。o每次运行之前,先复位至0000。当取出一条指令后,PC应加1。(2)存储地址寄存器MARo接收来自PC的二进制程序号,作
3、为地址码送至PROM去。(3)可编程序只读存储器PROMo其原理如图3.2所示。o这是一个44PROMo和图2.30的ROM之不同点是:每条横线与竖线都有一条由开关和二极管串联的电路将它们连接起来。o只要拨动开关,即可使该数据位置1或置0,从而达到使每个存储单元“写入”数据的目的。因而称这种ROM为可编程序ROM。oPROM实际上同时具有RAM和ROM的功能。这里为了简化作图而只用44PROM的图,如是168PROM,则其横线应为16条(R0R15),竖线为8条(D7D6D0),地址码线则相应地应为4条(A3A2A1A0)。图图 3.2(4)指令寄存器IRoIR从PROM接收到指令字(当LI=
4、1,ER=1),同时将指令字分送到控制部件CON和W总线上去。o指令字是8位:MSBLSBo最高有效位最低有效位n左4位为最高有效位(高4位),称为指令字段;n右4位为最低有效位(低4位),称为地址字段。(5)控制部件CONo每次运行之前,CON先发出CLR=1,使有关的部件清0。此时:PC=0000IR=00000000oCON有一个同步时钟,能发出脉冲CLK到各个部件去,使它们同步运行。o在CON中有一个控制矩阵CM,能根据IR送来的指令发出12位的控制字:CON=CPEPLMERLIEILAEASUEULBLOo根据控制字中各位的置1或置0情况,计算机就能自动地按指令程序而有秩序地运行。
5、(6)累加器Ao用以储存计算机运行期间的中间结果。o它能接收W总线送来的数据(LA=1),也能将数据送到W总线上去(EA=1)。o它还有一个数据输出端,将数据送至ALU去进行算术运算。o这个输出是双态的,即是立即地送去,而不受E门的控制。(7)算术逻辑部件ALUo是一个二进制补码加法器减法器(参见图1.9)。o当SU=0,进行加法A+B;o当SU=1,进行减法A-B,即(A+B)。(8)寄存器Bo将要与A相加减的数据暂存于此寄存器。o它到ALU的输出也是双态的,即无E门控制。(9)输出寄存器Oo计算机运行结束时,累加器A中存有答案。如要输出此答案,就得送入O。此时EA=1,LO=1,则O=A。
6、o典型的计算机具有若干个输出寄存器,称为输出接口电路。这样就可以驱动不同的外围设备,如打印机、显示器等。(10)二进制显示器Do用发光二极管(LED)组成的显示器o每一个LED接到寄存器O的一位o当某位为高电位时,则该LED发光o因为寄存器O是8位的,所以这里也由8个LED组成显示器。功能分解o可分成3大部分,如图3.1(b)的所示n中央处理器CPU(包括PC,IR,CON,ALU,A及B);n记忆装置M(MAR及PROM);n输入输出IO(包括O及D,D也可称为其外围设备)。(1)中央处理器o中央处理器(central processing unit,缩写为CPU)是将程序计数功能(PC)、
7、指令寄存功能(IR)、控制功能(CON)、算术逻辑功能(ALU)以及暂存中间数据功能(A及B)集成在一块电路器件上的集成电路(IC)。o实际的CPU要比这里的图例更为复杂些,但其主要功能是基本一样的。(2)存储器o存储器M(memory)在此图例中只包括存储地址寄存器(MAR)及可编程存储器(实际还包括了地址译码功能),这就是微型计算机的“内存”。o实际的“内存”要包括更多的内容(如ROM,RAM及EPROM等)和更大的存储容量。(3)输入及输出接口o实现人机对话的重要部件。o本简例中的输入将是人工设定PROM(见3.3节的阐述)而没有输入电路接口只有输出有接口(O)。o实际微型计算机的输入设
8、备多为键盘,输出则为监视器(即电视屏显示器),因而必须有专用的输出接口电路。3.2 指令系统o指令系统就是用来编制计算程序的一个指令集合。在未编制出计算程序之前,计算机是一堆无价值的电路硬件。o这台微型机有5条指令,即其控制部件能完成一系列例行程序以执行5种命令:LDA将数据装入累加器A;ADD进行加法运算;SUB进行减法运算;OUT输出结果;HLT停机。o这5条指令在一起就称为这台计算机的指令系统。指令系统o不同型号的微处理机的指令系统是不同的,指令的条数也不相同。nZ80型的指令系统可达158条nM6800型有72条n6502型则有56条指令nIntel 80386则为152条。例:一个计
9、算程序助记符操作数注释LDAR9 ;把R9中的数据存入AADDRA ;把RA中的数据与A的相加ADDRB;把RB中的数据与A的相加ADDRC;把RC中的数据与A的相加SUBRD ;把A中的数据与RD的相减OUT;输出A中的数据,即结果HLT;停机执行过程执行第1条指令的结果:(A)=(R9)执行第2条指令的结果:(A)=(R9)+(RA)执行第3条指令的结果:(A)=(R9)+(RA)+(RB)执行第4条指令的结果:(A)=(R9)+(RA)+(RB)+(RC)执行第5条指令的结果:(A)=(R9)+(RA)+(RB)+(RC)-(RD)执行第6条指令的结果:(D)=(A)执行第7条指令的结果
10、:CLK停止发脉冲说明o加括号的意义是指被括上的寄存器或存储单元的内容。如(A)是指累加器A中的内容,(D)是指显示器显示出的数据,(R9)是存储单元R9中的数据,等等。o最后一条指令,使时钟脉冲停发,则计算机停止运行,但电源未切断,所以显示器中仍继续显示计算的结果。3.3 程序设计o写出这个清单,只能说明你已把要计算的题目的计算步骤列出来了。o如果这台计算机能“认识”你用汇编语言写出来的汇编程序,就可以直接输入上面这个指令清单,计算机内部有编译程序自动将这个清单上的每一条指令翻译成机器码而使计算机工作起来。过程o编制汇编语言写的程序o助记符的翻译n微型计算机并不认识助记符的意义,因此必须将指
11、令清单中每一条指令都翻译成二进制码机器码。o存储器的分配n存储器中既要写入计算程序,也要存放参与运算的数据,因此,还得决定存储器中的存储单元应如何分配,这称为存储空间分配。3.3.1 操作码表o这是由计算机制造厂提供的翻译表,它是每个助记符与二进制码的相应对照表。o由于我们的计算机很简单,只有5个助记符,列成对照表,比较简单易记。o但如果指令系统很庞大的话,此表也就很大而不易记忆,因而就必须有特殊的方法才能迅速可靠地使用它。3.3.2 存储器分配o在本微型机中就是要把PROM中的16个存储单元分配成两个区:n程序存放区(指令区)n数据存放区(数据区)。3.3.3 将源程序翻译成目的程序o根据助
12、记符与二进制的对照表(操作码表)将每条指令的助记符译成二进制码,并将存储单元符号写成地址码(即R00000,R10001,R91001)指令区 源程序目的程序 存储单元指LDAR9 0 0 0 0 1 0 0 1 0 0 0 0 (R0)ADD RA0 0 0 1 1 0 1 0 0 0 0 1 (R1)令ADD RB0 0 0 1 1 0 1 1 0 0 1 0 (R2)ADD RC0 0 0 1 1 1 0 0 0 0 1 1 (R3)区SUB RD0 0 1 0 1 1 0 1 0 1 0 0 (R4)OUT1 1 1 0 0 1 0 1 (R5)HLT 1 1 1 1 0 1 1 0
13、(R6)数据区 源程序目的程序 存储单元数16100 0 0 1 0 0 0 01 0 0 1(R9)20100 0 0 1 0 1 0 01 0 1 0(RA)据24100 0 0 1 1 0 0 01 0 1 1(RB)28100 0 0 1 1 1 0 01 1 0 0(RC)区32100 0 1 0 0 0 0 01 1 0 1(RD)3.3.4 程序及数据的输入方法oPROM既有ROM的特点(即可以存入但以后不许再改写而只许读出)也有RAM的特点(即可随时写入数据,也可读出数据)。oPROM分成两区n指令区:一旦存入指令,就不许再改(除非要计算的公式改变了)。n数据区:可以随时存入要
14、参与运算的数据,并在计算过程中可以取出来。o在第一次安排程序时,都要把程序和数据存入。将PROM的每个数据位的开关拨向置0或置1的位置即可。示例o图3.3就是这样一个PROM的输入装置,左边是控制板上安装的开关,每个存储单元有8个开关。16个存储单元(R0RF),共有816=128个开关。右边是根据例题而拨动的开关状态:n置0开关拨向断开的方向n置1开关拨向接通的方向o旁边的括弧内语句代表每一条指令,而数字是参与运算的十进制数据。o将目的码输入到PROM中去,即拨动控制板上的开关,使其成图3.3右边的状态。图图3.3说明o其中打的开关是随意状态,因为用不着,例如:OUT1110 HLT1111
15、 o因为这两条指令并不访问任何存储单元,所以R5及R6的高4位(将要送至控制部件的)有二进制码指令,而低4位(代表数据存放的存储地址)可以随意。程序执行o第一步必须先使计算机复位,此时控制器先发出一个CLR为高电位的脉冲,同时时钟脉冲开始工作,即发出脉冲电压系列到各个部件去。o每一个CLK脉冲都起到指挥各部件的同步运行的作用。o每个脉冲发出后,哪些部件应起响应作用,由控制部件的控制字来决定。累加器A中存放的数据执行LDA 9H后A=0001000016(10)执行ADDAH后A=0010010036(10)执行ADDBH后A=0011110060(10)执行ADDCH后A=0101100088
16、(10)执行SUB DH 后A=0011100056(10)执行OUT 后 D=0011 100056(10)执行HLT 后D=00111000(不变)执行HLT(停机)指令后,电源并不切断,只是CLK停发脉冲,所以显示器D上仍旧显示出计算结果。3.4 执行指令的例行程序o在程序和数据装入之后,启动按钮将启动信号传给控制部件CON,然后控制部件产生控制字,以便取出和执行每条指令。o执行一条指令的时间为一个机器周期。机器周期又可分为取指周期和执行周期。取指过程和执行过程机器都得通过不同的机器节拍。在这些节拍内,每个寄存器(PC,MAR,IR,A,B,O等)的内容可能发生变化。3.4.1 环形计数
17、器及机器节拍o在第2章中已介绍了环形计数器的电路原理(图2.21),这里再来看看其各位的状态如图所示。o环形计数器的各位输出端Q0Q5的电位就是机器节拍T0T5的电位,由于时钟脉冲是经过反相器再接到环形计数器(图中的“汽泡”表示非门)的CLK端的,所以各节拍之间的转换是在时钟脉冲的负边缘开始的。o由图可见,将环形计数器的输出看做是一个字T,则:T=T5T4T3T2T1T0o这是一个6位的环形字。它用以控制6条电路,使它们依次轮流为高电位,T0,T1,T2,T3,T4和T5称为机器的节拍。3.4.2 取指周期及执行周期o取出指令的过程需要3个机器节拍,在清零和启动之后第1个节拍为T0。(1)地址
18、节拍o在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控制字的排列次序请参看图3.1。(2)储存节拍o在T1=1时,应将PROM中由PC送来的地址码所指定的存储单元中的内容送到IR,同时IR立即将其高4位送至控制部件。因此,在此节拍到来之前,即应准备好:ER=1即PROM准备放出数据LI=1即IR准备接收数据o所以:CON=000110000000
19、(3)增量节拍o在T2=1时,应使PC加1,做好下一条指令的取指准备。因此,CP=1,即命令PC计数。所以,此时:CON=100000000000o这3节拍称为取指周期。这样3节拍的取指周期,对任何一条指令都是一样的。o因为任何一条指令都是沿着这个程式而将指令取出来,再将其高4位送入控制部件去进行分析,决定下面应如何执行,所以下面的3节拍就称为执行周期。o对本微型机来说,共有5类执行的程序:LDA将数据装入A;ADD将数据与A相加;SUB将数据与A相减;OUT将数据从A输出;HLT停机,即停发CLK脉冲。o执行这样的每个程序也需要3拍(T3,T4,T5),这种程序是由厂家编好了的,所以称为例行
20、程序。示例(续)o我们以LDA例行程序为例,考查一下在此3节拍中,各个寄存器的内容应有何变化。(4)T3=1oIR已将从PROM来的指令码的高4位送至控制部件进行分析。此高4位是与LDA相应的二进制码“0000”,控制部件经过分析后就发出命令:EI=1,将IR的低4位送至W总线;LM=1,MAR接收此低4位数作为地址并立即送至PROM;所以CON=001001000000o在上例题中,送至PROM的地址就是R9的二进制码地址(1001)。也就是说,第1次访问PROM的是其指令区,第2次访问的是其数据区。(5)T4=1o应将PROM的数据区的存储单元(如R9,即1001)的内容送入累加器A,即:
21、ER=1,PROM准备放出数据;LA=1,A准备接收数据;即CON=000100100000(6)T5=1o因为T4=1时,已将数据存放入A中,所以,LDA的例行程序就已完成,T5节拍就变成空拍,即有:CON=000000000000o为什么需要空拍?因为虽然LDA的例行程序用不着这个节拍,但别的例行程序(如ADD,SUB等)需要,为了使每条指令的机器周期都是一样长,即6个节拍,所以在不需6个节拍的指令语句中都给加一个空拍以补足。这样的机器称为固定周期的计算机。示例(第2条指令)oLDA 9H,这条指令执行完成后,就接着执行ADD AH的指令。o其取指周期仍和LDA 9H是一样的,只不过现在存
22、于PC中的内容已不是0000而是PC+1,即0001了。o执行周期和上条指令略有不同。o在执行周期的各列中T3节拍,第2条指令(ADD AH)和第1条指令(LDA 9H)是一样的,都是要求从IR将低4位的数据作为地址码送到MAR去。所以其控制字中也是LM=1和EI=1。o但在T4节拍就略有不同了。从PROM中来的数据不再送入累加器A,而是送入寄存器B,这样A和B的数据就能直接被送入ALU去相加。在T5节拍,第1条指令是空拍,第2条指令就不是了,因为将A和B的内容相加的结果还要送回到A去。所以要求LA=1,EU=1。由于ALU在实行相加时,要求SU=0,所以这里没出现SU。示例(第3、4、5条指
23、令)o第3、第4条和第1条指令完全一样,也是执行周期为3节拍,控制字也完全一样。因为它们同样是要求进行加法运算。o第5条是要求减法运算所以最后一个节拍中出现SU=1,因而控制字变成:CON=000000101100示例(第6、7条指令)o第6条指令要求将累加器的内容送入输出寄存器,而与存储器PROM无关,所以只在T3节拍要求LO=1,EA=1,而T4及T5节拍为空拍。o第7条指令只要求不再运行下去,即要求CLK时钟停发脉冲。这便是由控制器直接发出停止信号。所以在T3节拍发出HLT(停机信号)后T4及T5节拍也是空拍。3.5 控制部件o控制部件是使计算机能够成为自动机的关键部件。它包括下列主要部
24、件:n环形计数器(RC)n指令译码器(ID)n控制矩阵(CM)n其他控制电路o环形计数器、指令译码器、控制矩阵称为控制器。环形计数器用以发出环形字,从而产生机器节拍3.5.1 指令译码器o进入IR的数据的高4位立即被送入控制部件。o这高4位就是各种控制动作的代码n0000代表LDA的控制动作;n0001代表ADD的控制动作;n0010代表SUB的控制动作;n1110代表OUT的控制动作;n1111代表HLT的控制动作。o一个动作相当于一条控制线,要实现该动作,必须使该控制线为高电位。o这个由4个位组成的编码,必须被译成一个信号,即译为某一控制线为高电位,这就是译码器的任务。o译码器可以由与门和
25、非门组成,图3.5就是一个4位译码器。4位应该可以有16种编码的可能,由于我们的模拟机功能简单,只有5条指令,所以只要5个与门就够了。图图3.5LDA指令o由PROM进入到指令寄存器的数据是8位的,设为I7I6I5I4I3I2I1I0,则其高4位为:I7I6I5I4o指令为LDA时,I7I6I5I4=0000o此时,加至指令译码器的输入端的全是低电位,而各个非门的输出则全为高电位,所以与门1的四个输入端也全是高电位,故其输出,即控制线LDA为高电位。ADD指令o指令为ADD时,I7I6I5I4=0001o此时,加于指令译码器的输入端的左三个(I7I6I5)为低电位,而右一个(I4)为高电位。而
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 原理 应用
限制150内