微机之所以能在没有人直接干预的情况下自动地完成各种信息处理任务,是因为人们事先为它编制了各种工作程序,微机的工作过程就是执行程序的过程。由于程序由指令序列组成,因此,执行程序的过程就是执行指令序列的过程,即一条指令一条指令地逐条执行指令。由于计算机每执行每一条指令都包含取指令和执行指令两个基本步骤。因此,微机的工作过程也就是不断循环地取指令和执行指令的过程,首先CPU进入取指令阶段,从存储器中取出指令码送到指令寄存器中寄存,然后对该指令译码后,再转入执行指令阶段,在这期间,CPU执行指令指定的操作。取指令阶段是由一系列相同的操作组成的。因此,取指令阶段的时间总是相同的,而执行指令的阶段是由不同的事件顺序组成的,它取决于被执行指令的类型,不同指令的执行阶段所做的动作与所用的时间变化很大。执行完一条指令后接着执行下一条指令,如此反复,直至程序结束。图1-9为微机执行程序过程示意图。
图1-9 微机执行程序过程示意图
假定程序已由输入设备存放到内存中。当微机要从停机状态进入运行状态时,首先把第1条指令所在的地址赋给程序计数器PC,然后机器就进入取指阶段。在取指阶段,CPU从内存中读出的内容必为指令,于是,数据寄存器DR便把它送至指令寄存器IR,然后由指令译码器ID译码,控制器就发出相应的控制信号,CPU便知道该条指令要执行什么操作。当一条指令执行完毕以后,就转入下一条指令的取指阶段。这样周而复始地循环一直进行到程序中遇到暂停指令时方才结束。
需要指出的是,指令一般由操作码和操作数两部分组成。其中操作码表示执行何种操作,而操作数表示参加操作的数本身或者操作数所在的地址。因此,在执行一条指令时,就可能要处理不等字节数目的代码信息(包含操作码、操作数或操作数的地址)。
为了进一步说明微机的工作过程,我们来具体讨论一个模型机怎样执行一段简单的程序。例如,计算机如何具体计算3+2=?虽然这是一个相当简单的加法运算,但是,计算机却无法理解。人们必须要先编写一段程序,以计算机能够理解的语言告诉它如何一步一步地去做,直到每一个细节都详尽无误,计算机才能正确地理解与执行。为此,我们在启动工作计算机之前做好如下几项工作:
(1)首先根据指令表提供的指令,用助记符号指令编写源程序。
整个程序只需3条指令,但模型机并不认识助记符和十进制数,而只认识二进制数表示的操作码和操作数。因此,上面的用助记符书写的源程序需要翻译为二进制的机器码。
(2)由于机器不能识别助记符号,需要翻译(汇编)成机器语言指令。
整个程序机器码有5个字节,其中前两条占2个字节,最后一条占1个字节。
(3)将数据和程序通过输入设备送至存储器中存放,整个程序一共3条指令,5个字节,假设它们存放在存储器从00 H单元开始的相继5个存储单元中。如图1-10所示。
图1-10 存储器中的指令
注意:图中的每个单元具有两组和它相关的8位二进制数,其中方框左边的一组为它的地址,而方框内的一组为它的内容。
(4)当程序存入存储器后,就可以介绍微机内部执行程序的具体操作过程了。
开始执行程序时,必须先给程序计数器PC赋以第一条指令的首地址00 H,然后就进入第一条指令的取指令阶段。图1-11为第一条指令的取指令阶段操作示意图。
①将PC的内容00H送至地址寄存器AR,记为PC→AR。
②PC的内容自动加1变为01H,为取下一个指令字节做准备,记为PC+1→PC。
③AR将00H通过地址总线AB送至存储器,经地址译码器ID译码,选中00号单元,记为AR→M。
④CPU经数据总线CB发出“读”命令。(www.xing528.com)
⑤所选中的00号单元的内容B0 H读至数据总线DB,记为(00 H)→DB。
⑥经DB,将读出的B0 H送至数据寄存器DR,记为DB→DR。
⑦DR将其内容送至指令寄存器IR,经过译码,控制逻辑PLA发出执行该条指令的一系列控制信号,记为DR→IR,IR→ID、PLA。经过译码,CPU“识别”出这个操作码就是MOV A,n指令,于是,它“通知”控制器发出执行这条指令的各种控制命令。这就完成了第一条指令的取指令阶段,上述具体操作过程如图1-11所示。
接着进入第一条指令的执行指令阶段。
经过对操作码B0 H译码后,CPU就“知道”这是一条把下一单元中的立即数n取入累加器A的指令。所以,执行第一条指令就必须把指令第二字节中的立即数取出来送至累加器A。图1-12为第一条指令的执行指令阶段操作示意图。
①PC→AR,即将PC的内容01H送至AR。
②PC+1→PC,即将PC的内容处动加1变为02H,为取下一条指令作准备。
③AR→M,即AR将01H通过AB送至存储器,经地址译码选中01H单元。
④CPU发出“读”命令。
图1-11 第一条指令的取指令阶段操作示意图
图1-12 第一条指令的执行指令阶段操作示意图
⑤(01H)→DB,即选中的01 H存储单元的内容03 H读至DB上。
⑥DB→DR,即通过DB,把读出的内容03H送至DR。
⑦DR→A,因为经过译码已经知道读出的是立即数,并要求将它送到A,故DR通过内部数据总线将03H送至A。
按上述类似的过程取出第二条指令,并经译码后执行;最后再取出第三条指令。第三条指令为暂停指令,此指令执行后就停机。这样,微计算机就完成了人们事先编制的程序所规定的全部操作要求。
总之,计算机的工作过程就是执行指令的过程,而计算机执行指令的过程可看成是控制信息在计算机各组成部件之间的有序流动过程。信息是在流动过程中得到相关部件的加工处理。因此,计算机的主要功能就是如何有条不紊地控制大量信息在计算机各部件之间有序地流动。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。