`
- 浏览:
265570 次
- 性别:
- 来自:
沈阳
-
微型计算机中程序的执行过程
计算机采取"存储程序与程序控制"的工作方式,即事先把程序加载到计算机的存储器中,当启动运行后,计算机便会自动按照程序的要示进行工作。
为了进一步说明微机的工作过程,我们来具体讨论一个模型机怎样执行一段简单的程序。例如,计算机如何具体计算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
相关推荐
程序是一个特定的指令序列,它告诉计算机要做哪些事,按什么步骤去做。指令是一组二进制信息的代码,用来表示计算机所能完成的基本操作。
程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。 程序(港台称之为程式...在这种情况下,一个计算机程序是指一个单独的可执行的映射,而不是当前在这个计算机上运行的全部程序。
由于计算机的底层程序是由0和1组成,所以,不管使用哪种语言进行计算机程序编写,在程序执行的时候,都会最终转化成0和1的形式。 1 计算机程序设计的概念 计算机程序是指具备特别作用的指令,该指令是根据事务的时间...
2.2计算机程序设计在工业工程中的开发应用 在计算机程序设计开发及应用过程中,其在工业工程中也得到了较为普遍的应用。通过 对工业工程现状分析,在城市进程加快的同时,建筑工程行业发展迅速。部分建筑工程 项目...
" "教学重点"计算机工作原理和计算机程序的执行过程。 " " "用计算机程序解决问题的过程和方法 " "教学难点"计算机程序的基本结构和作用。 " " "读懂计算机程序代码。 " "教法学法"教学方法:讲解讨论法、案例分析...
高级语言源程序经过 编译 变成可执行文件,反编译就是逆过程。 但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。 计算机软件反向工程(Reversepengineering)也称为计算机软件还原工程,是指通过对...
在计算机程序执行过程中,分支语句(如if语句、循环等)会影响程序的性能,因为处理器需要预测分支的方向以提高执行效率。分支预测技术可以根据之前的执行历史和模式来预测分支的方向,从而减少分支带来的性能损失。...
为了加深初学者对51单片机指令的理解,现在把指令执行的过程在此详细说明,希望对你有启发! 单片机执行程序的过程,实际上...执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)
编译原理是计算机科学中的重要领域,它研究的是将高级程序语言代码转换为底层计算机可以执行的机器代码的过程。编译器是实现这一过程的关键工具,它由多个阶段组成,每个阶段负责不同的任务,包括词法分析、语法分析...
・:・能熟练、准确地应用分支、循环、跳转三种流程执行过程; 教学重点 :・标识符命名规那么、数据类型与运算符; : 嵌套ifelse语句的用法; 教学难点 :・数值类型转换(强制转换、隐式转换)的用法; :・Switch...
教学方法 :・问题导引法:通过给学生提出实际编程中出现的问题来引入教学内容,使学生在主动分析、讨论和解决问题的过程中掌握所学知 计算机程序设计(Java)-教案--单元十--数据库编程技术全文共11页,当前为第2页...
单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。
作为信息技术中最重要的 部分,讣算机技术无疑是其发展的核心问题,而我们知道计算机只是一台机器,它只 能按照计算机语言编好的程序执行,那么正确认识计算机语言的过去和未来,就是关 系到讣算机发展的重中之重;...
第三部分 程序设计基础 3.1 程序、程序设计、程序设计语言的定义 程序:计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的 装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号...
计算机程序设计(C语言) 课程设计报告 题目:电子动画时钟 学院: 机电工程学院 专业: 班级:090109班 学号: : 指导教师: 设计日期: 一、概述 选题背景 :随着社会的进步和科技的发展,电子钟表逐渐成为了人们...
所谓的同步执行,就是正常的计算机程序执行的3大顺序流程 顺序控制语句 从上至下,从左至右 分支控制语句 if,switch 循环控制语句 for,while,do…while,for…in,forEach() 所谓的异步执行,是一种特殊的程序的执行方式 ...
在线考研计算机真题为考生提供:2018考研计算机学科专业基础综合真题答案、计算机考研真题解析、历年考研计算机真题及答案等,甚至有更详细的计算机数据结构真题及答...
现代计算机采用程序控制方式工作,因此,用来存放程序的存储系统是计算机的重要组成部分。我们平常所说的存储器包括内存储器和外存储器。内存储器包括主存储器和高速缓存,外存储器即辅助存储器。主存储器简称主存,...
本资源主要讲述了源代码的转换、加载与运行,从源代码的预处理到编译、汇编、链接,整体阐述了源代码是怎样再计算机中变为可以执行的程序,可执行程序怎样加载并运行的整体流程。减少长篇大论的理论,以一个例子从头...