`

计算机程序的执行过程

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


计算机采取"存储程序与程序控制"的工作方式,即事先把程序加载到计算机的存储器中,当启动运行后,计算机便会自动按照程序的要示进行工作。
  为了进一步说明微机的工作过程,我们来具体讨论一个模型机怎样执行一段简单的程序。例如,计算机如何具体计算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执行指令时,把一条指令的操作分成若干个如上所述的微操作,顺序完成这此微操作,就完成了一条指令的操作),以保证列车按照预定的路线运行。

分享到:
评论

相关推荐

    一文看懂计算机执行程序的过程

    这个过程涉及多个关键环节和知识点,包括程序、指令、指令格式、控制器、指令周期以及指令的执行过程等。 程序是由一系列指令组成的集合,每条指令规定了计算机要完成的基本操作。例如,一个简单的程序可能包含将两...

    计算机程序

    ### 计算机程序 ...总之,计算机程序作为连接人与计算机之间的重要桥梁,其设计、开发和执行涉及众多复杂的概念和技术。无论是对于计算机科学家还是普通用户来说,了解计算机程序的基本原理都是非常重要的。

    计算机程序与程序设计语言-教案.docx

    计算机程序是计算机可以识别并执行的一系列指令的集合,这些指令告诉计算机如何处理数据和执行特定任务。计算机系统由运算器、控制器、存储器、输入设备和输出设备组成,它们共同协作使得程序得以运行。在程序运行的...

    计算机程序设计概述.pptx

    计算机程序设计概述 计算机程序设计是一门复杂的学科,它涉及到计算机科学、数学、逻辑和工程学等多个领域。计算机程序设计概述是计算机程序设计的基础,它涵盖了计算机程序设计的基本概念、原则和方法。 计算机...

    MIXBuilder 计算机程序设计艺术

    2. 编程实践:编写MIX程序,通过调试和运行来学习程序的执行流程,这对于理解计算机程序的生命周期至关重要。 3. 模拟硬件:MIXBuilder模拟了MIX计算机的硬件组件,如CPU、内存和输入/输出设备,帮助用户直观地理解...

    计算机程序设计

    顺序性、并发性、并行性和分布性是程序设计中描述程序执行特性的关键概念,它们影响着程序的执行效率和资源利用。 语言的语法、语义和语用是程序设计语言的三个核心要素。语法规定了如何构造合法的程序,语义解释了...

    CCF中学生计算机程序设计基础篇-小.pdf

    函数作为程序中的基本单元,可以封装一段能够执行特定任务的代码。 ### 知识点二:函数的封装作用 封装是面向对象编程的一个核心概念,它指的是将数据(或属性)和操作数据的方法(行为)绑定到一起,形成一个独立...

    计算机指令执行演示

    在大学课程中,老师可能会布置一些实践作业,如编写简单的汇编程序,然后分析其在计算机内部的执行过程。通过这种方式,学生可以深入到计算机系统的底层,掌握计算机执行指令的本质,这对于理解和优化程序性能、学习...

    编制计算机程序解决问题-流程图.ppt

    流程图在编制计算机程序解决问题中的应用 流程图是一种图形化的表示方法,用于描述算法或工序的动态过程,从开始到结束的全部过程。它由一些图形符号和文字说明构成,能够直观、明确地表示某个算法或工序的动态过程...

    计算机应用基础--第三章计算机程序设计语言.ppt

    计算机程序设计语言的执行过程可以概括为以下几个步骤:首先,人們将指令编写成程序,然后,让计算机执行这些指令。计算机在执行这些指令时,需要将其翻译成机器语言,以便计算机可以识别和执行。 3.4 语言处理程序...

    说课稿--用计算机程序解决问题

    3. **程序设计流程:**介绍计算机程序设计的一般步骤,即从问题分析到最终程序实现的过程,包括分析问题、设计算法、编写程序、调试运行、检测结果以及修改完善等环节。 **教学目标:** - 掌握用程序解决问题的一般...

    编制计算机程序解决问题ppt课件.ppt

    同时,通过一个流程图,来说明计算机程序解决问题的过程。 第八部分:习题 本部分主要包括一些习题,考查学生对计算机程序解决问题的理解,包括计算机语言的分类、程序设计语言的发展历程等。 本资源通过讲解...

    计算机程序设计与解释 chm及pdf两本

    3. **过程与环境模型**:阐述了程序执行的环境模型,帮助读者理解变量的作用域、闭包和动态绑定,为理解程序执行机制打下基础。 4. **元编程**:介绍元编程的概念,让读者学会编写可以操作和扩展自身的程序,实现...

    冯诺依曼计算机机器级程序及其执行PPT学习教案.pptx

    了解冯·诺依曼计算机模型及其机器级程序的执行原理,对于理解计算机程序如何在硬件层面得到处理至关重要。它不仅是我们学习编程语言的基础,也是深入研究操作系统、编译原理和计算机体系结构等高级计算机科学主题的...

    北京大学,计算机程序构造和解释(SICP)课件,裘宗燕老师主讲

    《计算机程序构造和解释》(SICP,Structure and Interpretation of Computer Programs)是一本具有深远影响力的计算机科学教材,由Harold Abelson和Gerald Jay Sussman编写,MIT Press出版。这门课程由北京大学数学...

    4.1编制计算机程序解决问题教案.doc

    本教案的主要目的是让学生了解计算机程序解决问题的基本过程和重要性,并初步掌握使用计算机程序解决问题的方法。通过本教案的学习,学生将认识计算机的构成、了解程序的重要性,并通过体验简单的计算机程序实例,...

    计算机程序的解释与构造

    通过比较解释和编译的过程,读者可以更深入地理解程序执行的不同方式,以及这些方式对程序性能的影响。书中还介绍了一些基本的解释器和编译器实现,如Scheme解释器和编译器。 #### 3. 数据结构与算法 数据结构和...

    计算机程序设计员国家职业资格三级操作技能考核试卷-带实际操作答案

    综上所述,计算机程序设计员国家职业资格三级操作技能考核涉及了软件测试的基础理论,包括基本路径测试方法的应用,控制流图的绘制,环形复杂度的计算,以及测试用例的设计。此外,还考察了问题解决能力,如用PAD图...

    计算机程序构造和计算

    求值机制,即程序执行过程中如何查找和替换变量的过程,也是本书的重点之一。这些机制直接影响到程序的可读性、可维护性和性能。 #### 3. 高级主题与实践 《计算机程序构造与解释》还涵盖了更高级的主题,如异常...

    涉及计算机程序发明专利申请的审查基准.pptx

    涉及计算机程序的发明是指那些为了解决特定问题,基于计算机程序处理流程,通过计算机执行这些流程来控制或处理外部或内部对象的解决方案。这可能包括对外部设备的控制、数据处理或交换,以及对计算机系统内部性能的...

Global site tag (gtag.js) - Google Analytics