`

计算机程序的执行过程

阅读更多
微型计算机中程序的执行过程


计算机采取"存储程序与程序控制"的工作方式,即事先把程序加载到计算机的存储器中,当启动运行后,计算机便会自动按照程序的要示进行工作。
  为了进一步说明微机的工作过程,我们来具体讨论一个模型机怎样执行一段简单的程序。例如,计算机如何具体计算3+2=?虽然这是一个相当简单的加法运算,但是,计算机却无法理解。人们必须要先编写一段程序,以计算机能够理解的语言告诉它如何一步一步地去做,直到每一个细节都详尽无误,计算机才能正确地理解与执行。为此,我们在启动工作计算机之前做好如下几项工作:
  ①首先用助记符号指令编写源程序。
  ②由于机器不能识别助记符号,需要翻译(汇编)成机器语言指令。
  假设上述①、②两步我们已经做了。
  ③将数据和程序通过输入设备送至存储器中存放,整个程序一共3条指令,5个字节,假设它们存放在存储器从00H单元开始的相继5个存储单元中。

  1.执行一条指令的过程
  计算机机招待程序时是一条指令一条指令地执行的。执行一条指令的过程可分为两个阶段,如图1-6所示。
首先,CPU进入以指令阶段,从存储器中取出指令码送到指令寄存器中寄存,然后对该指令译码后,再转入执行指令阶段,在这期间,CPU执行指令指定的操作。
  取指令阶段是由一系列相同的操作组成的,因此,取指令阶段的时间总是相同的。而执行指令的阶段是由不同的事件顺序组成的,它取决于被执行指令的类型。执行完一条指令后接着执行下一条指令,即:
  取指 执指,取指 执指……如此反复,直至程序结束。
   2.执行程序的过程
  开始执行程序时,必须先给程序计数器PC赋以第一条指令的首地址00H,然后就进入第一条指令的取令的取指令阶段。
  第一条指令的执行过程:
  取指令阶段:
  ①将程序计数器PC的内容(00H)送至地址寄存器AR,记为PC AR。
  ②程序计数器PC的内容自动加1变为01H,为取下一个指令字节作准备,记为PC+1 PC。
  ③地址寄存器AR将00H通过地址总线送至存储器,经地址译码器译码,选中00号单元,记为AR M。
  ④CPU发出"读"命令。
  ⑤所选中的00号单元的内容B0H读至数据总线DB,记为(00H) DB。
  ⑥经数据总线DB,将读出的B0H送至数据寄存器,记为DB DR。
  ⑦数据寄存器DR将其内容送至指令寄存器IR,经过译码,控制逻辑发出招待该条指令的一系列控制信号,记为DR IR,IR ID、PLA。经过译码,CPU"识别"出这个操作码就是MOV A,03指令,于是,它"通知"控制器发出执行这条指令的各种控制命令。这就完成了第一条指令的取指令阶段,上述过程如图所示。(点击看java动画演示)
  1执行指令阶段:
  经过对操作码B0H译码后,CPU就"知道"这是一条把下一单元中的立即数取入累加器A的指令。所以,执行第一条指令就必须把指令第二字节中的立即数取出来送至累加器A,取指令第二字节的过程为:
  ①PC AR,即将程序计数器的内容01H送至地址器AR。
  ②PC+1 PC,即将程序计数器的内容处动加1变为02H,为取下一条指令作准备。
  ③AR M,即地址寄存器AR将01H通过地址总线送至存储器,经地址译码选中01H单元。
  ④CPU发出"读"命令。
  ⑤(01H) DB,即选中的01H存储单元的内容03H读至数据总线DB上。
  ⑥DB DR,即通过数据总线,把读出的内容03H送至数据寄存器DR。
  ⑦DR A,因为经过译码已经知道读出的是立即数,并要求将它送到累加器A,故数据寄存器DR通过内部数据总线将03H送至累加器A。
  上述过程如图所示。(点击看java动画演示)
  第二条指令的执行过程:
第一条指令执行完毕以后,进入第二条指令的执行过程。
  取指令阶段:
  这个过程与取第一条指令的过程相似。
  执行指令阶段:
  经过对指令操作码04H的译码后,知道这是一条加法指令,它规定累加器A中的内容与指令第二字节的立即数相加。所以,紧接着执行把指令的第二字节的立即数02H取出来与累加器A相加,其过程为:
  ①把PC的内容03H送至AR,记为PC AR。
  ②当把PC内容可靠地送至AR以后,PC自动加1,记为PC+1 PC。
  ③AR通过地址总线把地址03H送至存储器,经过译码,选中相应的单元,记为AR M。
  ④CPU发出"读"命令。
  ⑤选中的03H存储单元的内容02H读出至数据总线上,记为(03H) DB。
  ⑥数据通过数据总线送至DR,记为DB DR。
  ⑦因由指令译码忆知读了的为操作数,且要与A中的内容相加,故数据由DR通过内部数据总线送至ALU的另一输入端,记为DR ALU。
  ⑧累加器A中的内容送ALU,且执行加法操作,记为A ALU。
  ⑨相加的结果由ALU输出至累加器A中,记为ALU A。第二条指令的执行过程如图1-10所示。至此,第二条指令的执行阶段结束了,就转入第三条指令的取指令阶段。
按上述类似的过程取出第三条指令,经译码后就停机。这样,微计算机就完成了人们事先编制的程序所规定的全部操作要求。
  总之,计算机的工作过程就是执行指令的过程,而计算机执行指令的过程可看成是控制信息在计算机各组成部件之间的有序流动过程。信息是在流动过程中得到相关部件的加工处理。因此,计算机的主要功能就是如何有条不紊地控制大量信息在计算机各部件之间有序地流动,其控制过程类似于铁路交通管理过程。为此,人们必须事先制定好各次列车运行图(相当于计算机中的信息传送通路)与列车时刻表(相当于信息操作时间表),然后,再由列车调度室在给定的时刻发出各种控制信号,如交通管理中的红、绿灯、扳道信号等(相当于计算机中的各种微操作控制信号。通常情况下,CPU执行指令时,把一条指令的操作分成若干个如上所述的微操作,顺序完成这此微操作,就完成了一条指令的操作),以保证列车按照预定的路线运行。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics