通常,一条指令的执行分为取指令阶段、分析及取数阶段和执行阶段3个过程。
(1)取指令
取指令阶段完成将现行指令从内存中取出来并送到指令寄存器中,具体 *** 作为:首先,将程序计数器PC中的内容通过地址总线送至内存地址寄存器;第二,向仙存发读命令;第三,从内存中取出的指令经数据寄存器、数据总线送到指令寄存器中;第四,将PC的内容递增,为取下一条指令做好准备。
(2)分析及取数指令
取出指令后,机器立即进入分析及取数阶段,指令译码器ID可识别和区分不同的指令类型及各种获取 *** 作数的方法。由于各条指令功能不同,寻址方式也不同,所以分析及取数阶段的 *** 作是不同的。
(3)执行
执行阶段完成指令规定的各种 *** 作,产生运算结果,并将结果存储起来。
总之,计算机的基本工作过程可以概括为取指令、分析及取数、执行等,然后再取下一条指令,
如此周而复始,直到遇到停机指令或外来事件的干预为止。
执行程序的过程
:
开始执行程序时,必须先给程序计数器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指令,于是,它"通知"控制器发出执行这条指令的各种控制命令。
(一)冯·诺依曼设计思想
计算机问世50年来,虽然现在的计算机系统从性能指标、运算速度、工作方式、应用领域和价格等方面与当时的计算机有很大的差别,但基本体系结构没有变,都属于冯·诺依曼计算机。
冯·诺依曼设计思想可以简要地概括为以下三点:
① 计算机应包括运算器、存储器、控制器、输入和输出设备五大基本部件。
② 计算机内部应采用二进制来表示指令和数据。每条指令一般具有一个 *** 作码和一个地址码。其中, *** 作码表示运算性质,地址码指出 *** 作数在存储器的位置。
③ 将编好的程序和原始数据送入内存储器中,然后启动计算机工作,计算机应在不需 *** 作人员干预的情况下,自动逐条取出指令和执行任务。
冯·诺依曼设计思想最重要之处在于他明确地提出了“程序存储”的概念。他的全部设计思想,实际上是对“程序存储”要领的具体化。
(二)计算机基本结构图
(图中实线为数据流,虚线为控制流),我们可以更好地理解“存储程序”和“程序控制”。
输入设备在控制器控制下输入解题程序和原始数据,控制器从存储器中依次读出程序的一条条指令,经过译码分析,发出一系列 *** 作信号以指挥运算器、存储器等到部件完成所规定的 *** 作功能,最后由控制器命令输出设备以适当方式输出最后结果。这一切工作都是由控制器控制、而控制器赖以控制的主要依据则是存放于存储器中的程序。人们常说,现代计算机采用的是存储程序控制方式,就是这个意思。
(三)计算机的工作过程
计算机的工作过程,就是执行程序的过程。怎样组织存储程序,涉及到计算机体系结构问题。现在的计算机都是基于“程序存储”概念设计制造出来的。
了解了“程序存储”,再去理解计算机工作过程变得十分容易。如果想叫计算机工作,就得先把程序编出来,然后通过输入设备送到存储器保存起来,即程序存储。下面就是执行程序的问题。根据冯·诺依曼的设计,计算机应能自动执行程序,而执行程序又归结为逐条执行指令。执行一条指令又可分为以下4个基本 *** 作:
① 取出指令:从存储器某个地址中取出要执行的指令送到CPU内部的指令寄存器暂存。
② 分析指令:把保存在指令寄存器中的指令送到指令译码器,译出该指令对应的微 *** 作。
③ 执行指令:根据指令译码,向各个部件发出相应控制信号,完成指令规定的各种 *** 作。
④ 为执行下一条指令作好准备,即取出下一条指令地址。
程序是实际上就是一个指令集合,通过一个 *** 作触发来执行指令
要知道,计算机是不认识我们的文字的,计算机能执行的都是机器码
指令的执行:取指,然后执行
取指(Fetch)――从主存储器中取出指令代码进入CPU。
8086CPU中,指令在存储器中的地址由代码段寄存器CS和指令指针寄存器IP共同提供,再由地址加法器得到20位存储器地址。总线接口单元BIU负责从存储器取出这个指令代码,送入指令队列。
执行(Execution)――是将指令代码翻译成它代表的功能(被称为译码)、并发出有关控制信号实现这个功能。
8086CPU中,执行单元EU从指令队列中获得预先取出的指令代码,在EU控制电路中进行译码,然后发出控制信号由算术逻辑单元进行数据运算、数据传送等 *** 作。指令执行过程需要的 *** 作数据有些来自CPU内部的寄存器、有些来自指令队列、还有些来自存储器和外设。如果需要来自外部存储器或外设的数据,则控制单元EU控制总线接口单元BIU从外部获取。
几乎所有的冯·诺伊曼型计算机的CPU,其工作都可以分为5个阶段:取指令、指令译码、执行指令、访存取数、结果写回。
1.取指令阶段
取指令(InstructionFetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。
程序计数器PC中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,PC中的数值将根据指令字长度而自动递增:若为单字长指令,则(PC)+1àPC;若为双字长指令,则(PC)+2àPC,依此类推。
2.指令译码阶段
取出指令后,计算机立即进入指令译码(InstructionDecode,ID)阶段。
在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取 *** 作数的方法。
在组合逻辑控制的计算机中,指令译码器对不同的指令 *** 作码产生不同的控制电位,以形成不同的微 *** 作序列;在微程序控制的计算机中,指令译码器用指令 *** 作码来找到执行该指令的微程序的入口,并从此入口开始执行。
3.执行指令阶段
在取指令和指令译码阶段之后,接着进入执行指令(Execute,EX)阶段。
此阶段的任务是完成指令所规定的各种 *** 作,具体实现指令的功能。为此,CPU的不同部分被连接起来,以执行所需的 *** 作。
4.访存取数阶段
根据指令需要,有可能要访问主存,读取 *** 作数,这样就进入了访存取数(Memory,MEM)阶段。
此阶段的任务是:根据指令地址码,得到 *** 作数在主存中的地址,并从主存中读取该 *** 作数用于运算。
5.结果写回阶段
作为最后一个阶段,结果写回(WriteBack,WB)阶段把执行指令阶段的运行结果数据“写回”到某种存储形式:
结果数据经常被写到CPU的内部寄存器中,以便被后续的指令快速地存取;
在有些情况下,结果数据也可被写入相对较慢、但较廉价且容量较大的主存。许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不同的 *** 作结果,可被用来影响程序的动作。
在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就接着从程序计数器PC中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令。
扩展资料:
指令的执行过程例子:
开机时,程序计算器PC变为0000H。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。
例如执行指令:MOVA,#0E0H,其机器码为“74HE0H”,该指令的功能是把 *** 作数E0H送入累加器。
0000H单元中已存放74H,0001H单元中已存放E0H。当单片机开始运行时,首先是进入取指阶段,其次序是:
1程序计数器的内容(这时是0000H)送到地址寄存器;
2程序计数器的内容自动加1(变为0001H);
3地址寄存器的内容(0000H)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000H的单元被选中;
4CPU使读控制线有效;
5在读命令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。至此,取指阶段完成,进入译码分析和执行指令阶段。
由于本次进入指令寄存器中的内容是74H( *** 作码),以译码器译码后单片机就会知道该指令是要将一个数送到A累加器,而该数是在这个代码的下一个存储单元。
所以,执行该指令还必须把数据(E0H)从存储器中取出送到CPU,即还要在存储器中取第二个字节。其过程与取指阶段很相似,只是此时PC已为0001H。指令译码器结合时序部件,产生74H *** 作码的微 *** 作系列,使数字E0H从0001H单元取出。
因为指令是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令寄存器。至此,一条指令的执行完毕。单片机中PC="0002H",PC在CPU每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。
这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。CPU就是这样一条一条地执行指令,完成所有规定。
参考资料:
以上就是关于简要说明计算机执行一条指令的基本 *** 作。全部的内容,包括:简要说明计算机执行一条指令的基本 *** 作。、简述程序的运行过程、计算机的工作过程是怎样的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)