1. 简单百科
  2. 指令计数器

指令计数器

指令计数器又叫程序计数器或指令地址计数器,是用于存放准备执行的指令地址。

指令计数器的作用是把专门用来存放指令地址的部件设计成能够自动加1计数的形式。因为指令通常是顺序执行的(转移情况除外),而组成一个程序的指令序列在存贮器中通常也是顺序存放的。一个程序的第一条指令放在存贮器的什么地方(叫首地址),程序设计人员是知道的,从第一条指令开始执行之后,接下去就是按顺序执行指令。所以指令地址计数器中的首地址要人为地给出,如果从首地址开始,机器能够自动地一条一条地执行下去,这是非常方便的。

指令计数器的位数要能满足存放指令的存贮器的容量大小。

简介

指令计数器是计算机处理器中的一个包含当前正在执行指令地址的寄存器,也称为程序寄存器(PC)。

工作原理

当执行一条指令时,首先需要根据指令计数器中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。与此同时,指令计数器中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据指令计数器取出第二条指令的地址,如此循环,执行每一条指令。

当计算机重启或复位时,程序计数器通常恢复到零。

在计算时,程序发出特殊的操作命令让计算机执行。指令通过程序,给计算机处理器发出命令。在计算机中,地址在存储或者内存中,都有专有的位置。寄存器是处理器使用的数据存放位置的一小部分。

相关

程序存储器

在计算机的主存储器中专门用来存放程序、子程序的一个区域。

指令寄存器

用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。

程序计数器

为了保证程序(在操作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。当程序转移时,转移指令执行的最终结果就是要改变PC的值,此PC值就是转去的地址,以此实现转移。有些机器中也称PC为指令指针IP(Instruction Pointer)。

地址寄存器

用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读、写操作完成为止。当CPU和内存进行信息交换,即CPU向内存存、取数据时,或者CPU从内存中读出指令时,都要使用地址寄存器和数据缓冲寄存器。同样,如果我们把外围设备的设备地址作为像内存的地址单元那样来看待,那么,当CPU和外围设备交换信息时,我们同样使用地址寄存器和数据缓冲寄存器。

参考资料

指令寄存器和程序计数器的区别.CSDN.2017-11-26