欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    微型计算机原理与应用-第3章.ppt

    • 资源ID:88495648       资源大小:999KB        全文页数:131页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    微型计算机原理与应用-第3章.ppt

    第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如图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的二进制程序号,作为地址码送至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=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情况,计算机就能自动地按指令程序而有秩序地运行。(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。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)、指令寄存功能(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实际微型计算机的输入设备多为键盘,输出则为监视器(即电视屏显示器),因而必须有专用的输出接口电路。3.2 指令系统o指令系统就是用来编制计算程序的一个指令集合。在未编制出计算程序之前,计算机是一堆无价值的电路硬件。o这台微型机有5条指令,即其控制部件能完成一系列例行程序以执行5种命令:LDA将数据装入累加器A;ADD进行加法运算;SUB进行减法运算;OUT输出结果;HLT停机。o这5条指令在一起就称为这台计算机的指令系统。指令系统o不同型号的微处理机的指令系统是不同的,指令的条数也不相同。nZ80型的指令系统可达158条nM6800型有72条n6502型则有56条指令nIntel 80386则为152条。例:一个计算程序助记符操作数注释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条指令的结果:CLK停止发脉冲说明o加括号的意义是指被括上的寄存器或存储单元的内容。如(A)是指累加器A中的内容,(D)是指显示器显示出的数据,(R9)是存储单元R9中的数据,等等。o最后一条指令,使时钟脉冲停发,则计算机停止运行,但电源未切断,所以显示器中仍继续显示计算的结果。3.3 程序设计o写出这个清单,只能说明你已把要计算的题目的计算步骤列出来了。o如果这台计算机能“认识”你用汇编语言写出来的汇编程序,就可以直接输入上面这个指令清单,计算机内部有编译程序自动将这个清单上的每一条指令翻译成机器码而使计算机工作起来。过程o编制汇编语言写的程序o助记符的翻译n微型计算机并不认识助记符的意义,因此必须将指令清单中每一条指令都翻译成二进制码机器码。o存储器的分配n存储器中既要写入计算程序,也要存放参与运算的数据,因此,还得决定存储器中的存储单元应如何分配,这称为存储空间分配。3.3.1 操作码表o这是由计算机制造厂提供的翻译表,它是每个助记符与二进制码的相应对照表。o由于我们的计算机很简单,只有5个助记符,列成对照表,比较简单易记。o但如果指令系统很庞大的话,此表也就很大而不易记忆,因而就必须有特殊的方法才能迅速可靠地使用它。3.3.2 存储器分配o在本微型机中就是要把PROM中的16个存储单元分配成两个区:n程序存放区(指令区)n数据存放区(数据区)。3.3.3 将源程序翻译成目的程序o根据助记符与二进制的对照表(操作码表)将每条指令的助记符译成二进制码,并将存储单元符号写成地址码(即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 (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数据区:可以随时存入要参与运算的数据,并在计算过程中可以取出来。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 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(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 环形计数器及机器节拍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)地址节拍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(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),这种程序是由厂家编好了的,所以称为例行程序。示例(续)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,即: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是一样的,只不过现在存于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条指令)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控制部件是使计算机能够成为自动机的关键部件。它包括下列主要部件: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译码器可以由与门和非门组成,图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)为高电位。而与门2的上边一条输入线不接至非门而直接与I4相接,所以是高电位。与门2的其他3条输入线都接至非门,所以也是高电位。因此,与门2的4个输入端全为高电位,故其输出,即控制线ADD为高电位。SUB指令o指令为SUB时,I7I6I5I4=0010o与门3应有一个输入线直接接至I5,其他各线则接至非门。也就是说,哪一位为0(低电位),则与门与该位相连的输入线应接至其非门;否则,直接接至该位。OUT和HLT指令o与前面的指令类似o自己检验一下3.5.2 控制矩阵o译码器能将编码信息译成某一控制线为高电位o每一节拍大都要求两个控制字位为高电位,虽然也有一位为高电位的(如CP=1),但只要不是一位的就要求2位或3位为高电位。o控制字有12位,每一指令要执行6拍,每拍均有不同的位为高电位,这又如何实现呢?o控制矩阵就是为了解决这个问题的,所以控制矩阵是控制部件的核心。o图3.6就是这样一个控制矩阵(CM)。图图3.6说明o最上面部分是一个环形计数器,它使T0至T5的6根横线轮流为高电位;中间4根横线为指令控制信号线。它们的电位高低是由上面的译码器决定的;最下面部分是由19个与门和6个或门组成一个逻辑电路。这个电路共有12个输出端,就是控制字CON:CON=CPEPIMERLIEILAEASUEULBLOo开机前总是先使CLR为高电位,则此时环形计数器复位至T0=1,其他各位为0。这就是说,每一节拍都是从T0开始的。LDA=1oT0=1时,EP=1;LM=1。(因为T0直接接至EP并通过或门I接至LM)oT1=1时,LI=1(因为LI端与T1直接相连);ER=1(因为T1通过或门至ER端)oT2=1时,CP=1(因为T2直接通至CP端)oT3=1时,LM=1(因为与门1的两个输入都是高电位,使或门导通)。EI=1(因为与门7的两个输入都是高电位,使或门导通)。LDA=1(续)oT4=1时,ER=1(因为与门4的两个输入都是高电位,使或门导通);LA=1(因为与门10的两个输入都是高电位,使或门导通)。oT5=1时,没有任何位为高电位(空拍)。控制字实现方法o硬件方法:从结构上用逻辑电路的方法来实现控制字。o微程序法:软件实现n指令系统较大,控制字较长(即位数很多)n不作要求3.5.3 其他控制电路o上面由环形计数器、控制矩阵及指令译码器组成的部分称为控制器。o为了实现控制动作,还需要下述几个电路(见图3.7)。图图3.7时钟脉冲发生器o一般可分成两部分,即时钟振荡器及射极跟随器。前者一般都是石英晶体振荡器,后者则用以降低输出电阻,以便有更大的电流输出,因为时钟脉冲发生器同时要推动很多的电路。运行停车触发器o这个电路既接收来自按钮的“运行”脉冲信号,也接收来自指令译码器的“HLT”停车信号,而其输出就去启动时钟振荡器。“启动”和“清除”按钮o这是由人直接操作的主令电器,命令都是由此开始的。3.6 微型计算机功能的扩展o上面介绍的微型计算机的功能显然是太少了,以致实际上没有什么用处。o功能不足的原因n硬件过于简单,尤其是控制部件只能接受5条指令而产生相应的例行程序。扩充指令系统。n软件开发,即如何利用现有的指令系统,经过灵活的编程以解决更多更复杂的问题。o图3.8是功能扩充了的微型计算机的结构图,其基本结构和图3.1的简易微型计算机是相似的。图图3.81.子程序计数器SCo它本身也相当于一个程序计数器,不过它不由CLR来清零,而可由LS门来置数。一旦置数,即为其子程序的开始地址。oSC的位数为8位。LS“装入”的可控门;ES“输出”的可控门,即3态门;CS“计数”的控制端。2.程序计数器PCoPC增加了一个LP门,这就使得PC可以接收跳转地址。oPC可以不从00H开始。3.随机存取存储器RAMo不用PROM而用RAM作为主存储器。oRAM的存储单元为256个,字长为12位。因为可以随机存取,还需要一个MDR(存储数据寄存器)。4.控制部件CONo产生一个28位的控制字:LSCSESLPCPEPLMWEMELDEDLIEILNENLAEAS3S2S1S0EULBLXINXDEXEXLO5.算术逻辑部件ALUo简化型计算机的ALU是一个二进制补码加法器减法器。只有算术加法及减法两种运算。其控制端为Su,即只有一位。o这里的控制端改为S=S3S2S1S0,即有4位。4位则有16种可能的组合,本机只用其中的10种,以得到3种算术运算和7种逻辑运算。6.变址寄存器Xo新增加的一种寄存器,它可以用指令使其加1或减1:INX加1指令助记符,其控制端符号为INX;DEX减1指令助记符,其控制端符号为DEX。7.指令寄存器IRo12位的寄存器,其指令字段和地址字段的位数不是固定不变的。o在访问存储器指令(MRI)和转移指令的执行期间,高4位代表指令字段,低8位代表地址字段。(MSB4位)(LSB8位)CONW总线7.指令寄存器IRo在运算指令执行期间,高8位代表指令字段,而低4位可为任意数,因为它不代表任何意义:(MSB8位)(LSB4位)CON 不用扩充后的指令系统o共有28条指令,可分为3类:n访问存储指令n转移指令n逻辑运算指令1.访问存储器指令omemory reference instruction,缩写为MRIo这些指令都与存储器的读写有关,所以其地址字段必须为8位(256个地址)。o访问存储器指令的特点是:由指令寄存器分出来的地址字段(8位的地址字段)必定进入MAR(存储器地址寄存器),这就能够识别出MRI这类指令。2.转移指令o可用以改变程序的顺序。o有了这类指令,就可以在规定的某种条件下将程序进程向前转移或向后转移,也可跳过若干条指令语句或去执行某个子程序之后再回至下一条指令语句。o转移指令也有六条,其特点是由指令寄存器IR分出来的地址段(8位)将进入程序计数器PC(即LP=1),或子程序计数器(LS=1)。3.逻辑运算指令o这类指令的特点是与存储器及程序计数器都无关,而是与ALU、A及B寄存器有关。o控制器只要接到1111的高4位,即知为运算指令,然后控制器再辨认选择码以确定进行什么样的运算。o由于这些运算都是在ALU和A,B之间进行的,所以不需地址码。低4位可以不置数,由其随机存在,并不产生任何影响。3.7 初级程序设计举例o所谓初级程序是包括下列的程序模式:(1)简单程序程序一统到底,中间没有任何分支和跳转。(2)分支程序程序进行中,根据判断程序执行的不同结果而分别跳转至其他子程序去。(3)循环程序程序进行过程中,在某一循环体进行若干次循环运行,然后再继续前进。(4)调用子程序程序进行至某一阶段,调用存储于某存储区中的某个子程序,然后返回至主程序继续运行下去。例3.1 程序清单指R0LDA6H把(R6)装入A去令R1SUB7H从(A)减去(R7)区R2JAM5H(A)=负,则转移至R5R3JAZ5H(A)=0,则转移至R5R4JMP1H无条件转移至R1R5HLT数R625(10)据区R79(10)例3.1o此程序清单包括指令区和数据区。数据区只存入两个数据:25(10)和9(10),它们分别存于存储单元R6和R7中。指令区是要求将R6中的内容减去R7中的内容,当其差0时,即停止运算,否则继续作多次的减法运算。o按上面程序清单的次序,看每条指令执行的结果应是什么。指令执行结果R0LDA6HA中的内容=25(10)R1SUB7H A中的内容=25-9=16(10)R2 JAM 5H 因为(A)负,所以不转移R3JAZ 5H 因为(A)0,所以不转移R4 JMP 1H 无条件转移至R1从R1起再执行第2次:R1SUB7HA中的内容=16-9=7(10)R2JAM5H因为(A)负,所以不转移R3JAZ 5H 因为(A)0,所以不转移R4JMP 1H 无条件转移至R1从R1起再执行第3次:R1SUB7HA中的内容=7-9=-2(10)R2JAM5H因为(A)=负,所以转移至R5R5HLT 停机这个程序可以理解为求(R6)(R7)的除法运算。这里是259,除的结果应得商为2,余数为7。程序循环运行的次数即为商,余数即为第2次执行后A中的内容。【例3.2】循环程序o用变址寄存器可以设计一个循环程序:R0LDX5H;将(R5)装入变址器XR1DEX;(X)减1R2JIZ 4H;(X)=0,则转移至R4R3JMP1H;无条件转移至R1sR4HLT ;停机R53(10);(R5)=3(10)(数据)第1次执行结果:R0LDX5H(X)=(R5)=3(10)R1DEX (X)=3-1=2(10)R2JIZ 4H因为(X)0,所以不转至R4R3JMP1H无条件转回R1第2次执行结果:R1DEX (X)=2-1=1(10)R2JIZ 4H因为(X)0,所以不转至R4R3JMP1H无条件转回R1第3次执行结果:R1DEX (X)=1-1=0R2JIZ 因为(X)=0,所以转至R4R4HLT 停机由此例可见,DEX至JIZ这两条指令之间要执行由“LDX R5”中所规定的次数(R5的内容就是次数)。此例R5=3(10),所以执行3次。如R5=10(10),则将进行10次,R5=100(10),则将进行100次。这个循环程序可以图3.9的流程图(见教材60页)来领会其执行过程。如果在DEX和JIZ之间还有别的指令语句,则同样也得执行3次。在DEX和JIZ之间的内容称为循环体。例3.3 乘法计算的程序o利用循环程序可作乘法计算,例如要求12(10)8(10),就是要求将12(10)连加8次。这就可以利用循环程序,让它进行8次循环。o程序如下:R0NOPR1LDXAHR2CLAR3DEXR4ADD9H7次返回R5JIZ 7HR6JMP 3HR7OUT转出循环 R8HLT R912(10)RA8(10)例3.3oNOP为空操作指令,即不做什么动作。o执行LDX AH时,把(RA)=8(10)装入变址器X。o执行CLA时,使累加器A清零。o执行DEX时,开始循环,并在第1次通过时把(X)减1而成为(X)=7(10)。o执行ADD 9H时,把12(10)与累加器A的内容相加。oJIZ 7H的指令,在第1次循环时不起作用。执行JMP 3H时,使程序回到DEX语句。o因为存储单元RA装入的是8(10),即在变址寄存器中的整数是8(10),所以循环要执行8次。而ADD 9H(R9中装的是12(10)处于DEX和JIZ之间(ADD 9H就是循环体),所以也要执行8次,即12(10)这个数要在ALU中与A的内容连加8次后存在累加器A中。例3.3 o当执行8次循环之后,再执行JIZ 7H时,程序就转至OUT,于是答案96(10)就被存入输出寄存器O中,然后执行程序HLT停机。程序至此执行结束。o此例中的变址寄存器X的内容是由存储单元RA装入的。要知道RA的内容是由输入寄存器N由外部设备输入的。其实可以直接由外部设备通过输入寄存器N装入累加器A再装入变址寄存器,而不必经过存储器的单元RA。这只要将上例中的头两条指令改成下面的样子即可:R0INP ;将外部数据装入AR1XCH;将(A)和(X)互换o其他各条指令保持原样不变,而删去最后那一条指令RA=8(10)。o由于在进入循环之前,有一条CLA语句,可以将A清零,所以A和X交换之后,A中是什么内容可以不去管了。例3.4 逻辑运算的例子o设计一个程序,用以测试某个来自接口电路的输入数I0(12位),以确定该数是否为奇数。o如I0为奇数(即最后一位为1),则显示一个111111111111;o如I0是偶数(最后一位为0),则显示一个00000000 0000。例3.4 程序清单R0INP;将I0装入累加器AR1LDB9H;将(R9)装入寄存器BR2AND;将(B)与(A)进行“与”运算R3JAZ6H;(A)=0,则转移至R6R4LDAAH;将(RA)装入累加器AR5JMP7H;无条件转至R7R6LDABH;将(RB)装入累加器AR7OUT;输出(A)至显示器R8HLT;停机R90 0 0 00 0 0 00 0 0 1(掩码)RA1 1 1 11 1 1 11 1 1 1奇数标志RB0 0 0 00 0 0 00 0 0 0偶数标志例3.4 解释o执行INP时,A=I0=A0 最右边一位A0可能是1或0。o执行LDB 9H时,将R9的内容装入寄存器B:B=(R9)=0000 0000 0001o这个字叫做掩码或屏蔽字。这是因为在执行“与”运算时,累加器中的数字A的高位(除A0位外的所有的位)将与“0”相“与”而均变成0,不论其原来是1或0。这就称为屏蔽或掩蔽。例3.4 解释o执行AND时,就是A和B的内容各对应位相“与”,结果为:A=0000 0000 000A0o因此,在“与”运算之后:如A=0,即为A0=0;如A0,即为A0=1。若被测试的I0为奇数,则此时A00;若I0为偶数,则A0=00。例3.4 解释o如A0=1,即执行JAZ,结果因A0,不转移至R6,而执行其下一条语句:LDA AH,即将RA的内容(1111 1111 1111)装入累加器A。再执行JMP 7H,即跳过下一条指令而至R7,即指令OUT,就将累加器的内容显示出来。o如A0=0,则执行JAZ指令时,因A=0,所以转移至R6。R6的指令为LDA BH,即将RB的内容装到累加器A中去,于是:A=0000 0000 0000o接着执行OUT语句,而把此内容显示出去。o逻辑运算,经常用来测试数字的各种状态,如测试任一位的奇偶性等。例3.5 子程序设计o设计一个计算x2+y2+z2=?的计算程序。o由于x2,y2和z2在形式上都是一样的,是求一个数的平方值,因此可将x2做成一个子程序而存于存储器中一个固定的区域中,用到时,即可将其调出使用。o如将此子程序存于以RF2为起始地址(其地址为F2H,即1111 0010的存储单元)的一个区域中,则可设计其程序如下。例3.5 程序清单 RF2STACAH;将(A)暂存于RCA RF3LDXCAH;将(RCA)装入XRF4CLA;累加器A清零循环程序RF5DEX;(X)减1循环体RF6ADDCAH;将(RCA)与(A)相加x个x相加的过程RF7JIZF9H;(X)=0,则转移到RF9RF8JMPF5H;无条件转移至RF5RF9BRB;返回主程序RC6RC6xRC7y;被运算的数据RC8zRC9RCA;运算过程暂存地址例3.5 程序执行过程o第1步,先将要运算的十进制数4,6和8存入到存储单元RC6,RC7,RC8中去。o第2步,就可开始执行此程序了。其执行过程如下:R00:将RC6的内容(4(10)装入累加器A。R01:无条件跳至子程序开始地址F2H,并执行子程序的各条指令。其过程如下:RF2:将A的内容4(10)暂存入RCA中。RF3:将RCA中的内容4(10)装入X中。例3.5 程序执行过程RF4:将A清除即使(A)=0。RF5:使X的内容减1,于是(X)=4-1=3(10)。RF6:将RCA的内容4(10)与A的内容(0)相加,并存于A中,所以A=0+4=4(10)。RF7:检查(X)是否为0,因为(X)=3(10)0,所以不跳转至RF3,而执行下条指令。RF8:无条件转至RF5,进入第2循环,X的内容由3(10)减为2(10)。接着重复循环体RF6指令,再将RCA的内容4(10)加到累加器A的内容中去。这样重复4次,A中所存的数即为4+4+4+4=16=42。重复4次后,再执行至RF7时,检查X的内容,则(X)=0,所以跳出循环而进行RF9。RF9:返回至主程序的R02。例3.5 程序执行过程R02:将累加器A的内容42=16(10)暂存入RC9中。R03:将RC7的内容6(10)装入A中。R04:第2次跳转至子程序的开始地址RF2。由于RC7的内容为6(10),所以此循环将执行6次,最后累加器中的内容为62=36。然后跳回主程序的R05。R05:将RC9的内容42=16(10)与累加器A的内容62=36(10)相加,并存于A中,所以(A)=42+62R06:将A的内容(42+62)暂存于RC9中。R07:将RC8的内容8(10)装入A中。R08:第3次跳转至子程序开始地址RF2,并依次执行下去,至RF5又进入第3次以循环体为RF6 ADD,CAH的循环。此时由于装的是RC8,其内容为8(10),所以循环次数为8次。循环体中的RCA装的也是RC8的内容,所以也是8(10),所以8次循环后,存于A中的是82=64(10),然后跳回主程序的R09。例3.5 程序执行过程R09:将RC9的内容(42+62)与累加器A中的内容(82)相加,结果仍存入A中。所以A的内容为(42+62+82)。R0A:将A的内容送入输出寄存器O。此寄存器立即使显示器出现计算结果。R0B:停机。由上可见,只要将被运算的3个数x,y和z放入RC6,RC7和RC8就可以通过此程序计算任何3个数的平方和了。3.8 控制部件的扩展o对于整个控制部件而言,也还是可以用图3.7的方框图来说明其中各环节的关系。不过,这个功能更大的模型式计算机的控制器就要复杂得多。其中,主要是控制矩阵,显然变得更庞大而复杂,以致不可能在课本中将其逻辑电路画出来。图3.10就是控制器的结构图。图图3.10说明o图中的Aminus,Azero,Xminus和Xzero来自累加器A和变址寄存器X。指令译码器接收来自指令寄存器IR的8位指令字段(高8位)而译成28条指令线。其中HLT将直接被引到运行停车触发器(见图3.7)。其他27条指令则被引至控制矩阵,以便产生28位的控制字。控制矩阵o和上述的微型计算机一样,这也是一台固定机器周期的计算机。一个机器周期也是包含6拍,前3拍为取指周期,后3拍为执行周期。o取指周期的3个时钟节拍的动作可以由控制字中为高电位的位来表示:T0Ep=1,LM=1(PCMARRAM);T1ME=1,LI=1(RAMIR);T2CP=1,(PC+1PC)。o这3个节拍和上述的微型计算机的一样,请参考3.4。o执行周期的3个节拍,对于每条指令将有很大的不同,即其控制字中各位的

    注意事项

    本文(微型计算机原理与应用-第3章.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开