2.1.4 计算机执行指令的基本过程

计算机的工作是自动快速地执行程序。在计算机中,用程序计数器(PC)来决定程序中各条指令的执行顺序。计算机开始执行程序时,程序计算器为该执行程序的第一条指令所在的内存单元地址,此后按照如下步骤依次执行程序中的各指令。

1.取指令

按程序计数器中的地址,从内存器中取出当前要执行的指令并传送到指令寄存器。

2.解析指令

解析指令为寄存器中的指令,由译码器对指令中的操作码进行译码,将指令中的操作码转换成相应的控制信息。由指令中的地址码确定操作数存放的地址。

3.执行指令

由操作控制电路发出完成该操作所需要的一系列控制信息,对由源地址码所指出的源操作数做该指令所要求的操作,并将操作结果存放到由目的地址码所指出的地方。

4.修改程序计数器

一条指令执行完后,根据程序的要求修改程序计算器(PC)的值,如果当前执行完的指令中不产生转移地址,则将程序计数器(PC)加n(当前执行完的指令是n字节指令);如果当前执行完的指令是转移指令,则将转移地址送入程序计数器,最后转“1. 取指令”继续执行,直到所有指令执行完毕。

CPU从内存中取出一条指令解析并执行,一条指令执行完后,再从内存取出下一条指令分析并执行。CPU不断地取指令、分析指令、执行指令,这就是程序的执行过程。

5.指令执行时序

每条指令占用的时间称为指令周期,考虑到计算机中存储器的运行速度最慢,通常用内存中读取一个指令字的最短时间来规定CPU周期。分析指令由指令译码电路完成,所需时间极短。执行指令过程中可能访问一次存储器,也可能访问多次存储器,因此,执行指令的指令周期不确定。