`
20386053
  • 浏览: 462057 次
文章分类
社区版块
存档分类
最新评论

计算机程序的执行过程

 
阅读更多

一。 计算机程序的执行过程

程序就是指令的集合

为使计算机按预定要求工作,首先要编制程序。程序是一个特定的指令序列,它告诉计算机要做哪些事,按什么步骤去做。指令是一组二进制信息的代码,用来表示计算机所能完成的基本操作。
1.程序
程序是为求解某个特定问题而设计的指令序列。程序中的每条指令规定机器完成一组基本操作。如果把计算机完成一次任务的过程比作乐队的一次演奏,那么控制器就好比是一位指挥,计算机的其它功能部件就好比是各种乐器与演员,而程序就好像是乐谱。计算机的工作过程就是执行程序的过程,或者说,控制器是根据程序的规定对计算机实施控制的。例如,对于算式

计算机的解题步骤可作如下安排:
步骤1:取a ;
步骤2:取b ;
步骤3:判断 ;
. 若 b≥0,执行步骤4
.若b<0,执行步骤6
步骤4:执行a+b;
步骤5:转步骤7;
步骤6:执行a-b;
步骤7:结束。
计算机的工作过程可归结为:取指令→分析指令→执行指令→再取下一条指令,直到程序结束的反复循环过程。通常把其中的一次循环称为计算机的一个指令周期。总之,我们可把程序对计算机的控制归结为每个指令周期中指令对计算机的控制。
2.指令
程序是由指令组成的。指令是机器所能识别的一组编制成特定格式的代码串,它要求机器在一个规定的时间段(指令周期)内,完成一组特定的操作。指令的基本格式可归结为操作码OP和操作数地址AD两部分,具体内容是:
⑴ 指出计算机应完成的一组操作内容,如传送(MOV)、加法(ADD)、减法(SUB)、输出、停机(HLT)、条件转移(JZ)等。这部分称为指令的操作码部分
⑵ 两个操作数的地址和存放结果的地址及寻址方式。
⑶ 为保证程序执行的连续性,在执行当前指令时,还需指出下一条指令的地址。由于指令在存储器中一般是顺序存放的,所以只要设置一个指令指针(IP),每执行一条指令,IP自动加1,便自动指出下一条指令的地址,而不必在指令中专门指出下一条指令的地址 。只有在转移指令中才指出下一条指令的地址。此时,IP的内容将随转移指令所指示的内容改变。
3.指令的执行
指令规定的内容是通过控制器执行的,或者说控制器是按照一条指令的内容指挥操作的。
⑴ 控制器的功能
① 定序功能——保证按程序规定的顺序执行指令。
② 定时功能——计算机处理信息是通过信息在计算机的逻辑电路中的流通完成的。为保证计算机工作的准确性,控制器要为计算机 中的各部件提供统一节拍,使各条指令及组成每条指令的各基本操作(通常称为微操作)都严格地按规定的时间有条不紊地自动执行。
③ 操作控制功能——控制器应能按照指令规定的内容,在相应的节拍向有关部件发出操作控制信号。
⑵ 控制器的组成
在控制器中,上述功能分别由指令部件、时序部件和操作控制部件来完成。它们的组成如图1-8所示。

指令部件:指令部件的主要功能是取指令和分析指令。它由指令指针IP(也叫指令计数器IC或程序计数器PC)、指令寄存器IR、指令译码器、地址计算部件组成。其中:
●指令指针IP的功能是指出当前指令的地址。它有加1功能,通常每取一条指令后自动加1,以指出下条指令的地址。遇到特殊情况(如转移)可通过地址计算部件形成下一条指令的地址。
●指令寄存器IR保存由存储器取来的指令,并分别把操作码OP和操作数地址AD送指令译码和地址计算部件。
●指令译码器也称操作码译码器。它按操作码的内容向操作控制部件提供相应的操作电信号。
●地址计算部件的作用是对指令中地址码进行(变址、间址等)运算,求出的操作数地址送存储器以取出数据;或者把转移指令中指出的下一条指令地址送IP。
② 时序部件:时序部件也叫节拍发生器,它能为各部件提供一个时间基准。时钟频率(如800MHz,1GHz,2 GHz,2.4 GHz,3 GHz…)越高,计算机的工作速度就越快。
③ 操作控制部件:该部件的功能是根据指令译码器的规定内容,在规定的节拍内向有关部件发出操作控制信号。
⑶ 指令的执行过程
通常,计算机执行一条指令的步骤如下:
① 把指令指针IP中的指令地址送存储器,从该地址取出指令送指令寄存器IR;
② 地址计算部件,根据IR中的地址码形成操作数地址送存储器,从该地址取出数据,送到运算器中的寄存器(或寄存器组);
③ 将IR中的操作码OP送指令译码器进行译码;
④ 在控制器发出的操作信号的控制下,计算机各有关部件执行操作码OP规定的操作;
⑤ 指令指针IP加1,形成下一条指令地址。如遇到转移指令,则按转移指令对状态标志寄存器测试的结果,决定是否将转移指令中指出的指令地址送指令指针IP。
4.计算机的解题过程
要使计算机按预定要求工作,首先要编制程序。程序是一个特定的指令序列,它告诉计算机要做哪些事,按什么步骤去做。指令是一组二进制信息的代码,用来表示计算机所能完成的基本操作。不同的计算机所包含指令的种类和数目是不同的,通常把一台计算机所能执行的各类指令的集合,称为该机的指令系统。因此,在机器一级的程序设计,就是按照解题要求在机器指令系统中选择并有序组合解题需要的指令序列的过程。
使用计算机解题大致要经过程序设计→输入程序→执行程序等步骤。现以计算a+b-c为例来说明这一过程。
设a、b、c为已知的三个数,分别存放在主存的5~7号单元中,结果将存放在主存的8号单元。若采用单累加器结构的运算器,要完成上述计算至少需要5条指令,这5条指令依次存放在主存的0~4号单元中,参加运算的数也必须存放在主存指定的单元中,主存中有关单元的内容如图1-9(a)所示。运算器的简单框图如图1-9(b)所示,图中参加运算的一个操作数来自累加器,另一个来自主存,运算结果则放在累加器中。
计算机的控制器将控制指令的逐条、依次执行,最终得到正确的结果。具体步骤如下:
⑴ 执行取数指令,从主存5号单元取出数a,送入累加器中。
⑵ 执行加法指令,将累加器中的内容a与从主存6号单元取出的数b一起送到算术逻辑部件ALU(Arithmetic Logic Unit,ALU)中相加,结果a+b保留在累加器中。
⑶ 执行减法指令,将累加器中的内容a+b与从主存7号单元取出的数c一起送到算术逻辑部件ALU中相减,结果a+b-c保留在累加器中。
⑷ 执行存数指令,把累加器中的内容a+b-c存至主存8号单元。
⑸ 执行停机指令,计算机停止工作。









二。编译型和解释型语言

将高级语言翻译成机器语言有两种方式:编译和解释。二者区别在于翻译的时间不同。
编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。因此效率比较高。比如C语言。
解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程序,每个语句都是执行的时候才翻译。
C语言是编译型的。
Java比较特殊,Java程序也需要编译,但是没有直接编译成机器语言,而是编译成字节码,然后用解释方式执行字节码。
C程序——>机器语言(编译)
Java程序——>字节码(编译)——>机器语言(解释)

分享到:
评论

相关推荐

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

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

    计算机程序

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

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

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

    计算机程序设计概述.pptx

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

    MIXBuilder 计算机程序设计艺术

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

    计算机程序设计

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

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

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

    计算机指令执行演示

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    计算机程序的解释与构造

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

    计算机程序构造和计算

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

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

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

Global site tag (gtag.js) - Google Analytics