概念
指令地址寄存器(instruction address register)是指存放指令地址的寄存器,又称指令计数器。控制器根据指令计数器中存放的指令地址,从内存贮器中将指令取出到指令寄存器中,然后对该指令进行分析,且执行之,同时在指令计数器中自动形成下一条指令的地址。1
计算机工作时,一般根据指令的排列顺序,逐条依次执行。因此,当执行程序时,只要将程序的第一条指令的地址送入指令计数器,而后每执行一条指令就在现行指令计数器的地址值加“1”,达到取后继指令的目的。这样,便从起始地址(即程序的第一条指令的单元地址)开始,依次逐条接着执行。实现加“1”的方法有两种:一是指令计数器送全加器,实现加“1”,并将结果送回指令计数器,这种方法的指令计数器没有计数能力,实际上是一个指令地址寄存器;另一种方法是:采用计数器作指令地址寄存器,它本身具有加“1”的能力。
工作原理指令计数器不仅有顺序记录指令地址的功能,而且还可以打断它的顺序,用以转移指令,按照人们的意图进行安排。因此,指令地址寄存器的输入端,还应具有并行接收代码的功能,而它的输出端一般均与内存的地址码寄存器相连接。这样,当需要转移到另一个地址开始执行指令时,只要将这转移地址送入指令计数器,而后重复对计数器逐次加“1”即能达到自动工作的目的。
由此可见:
(1)指令计数器不是计数执行多少条指令,而是指出应该接着执行的指令所在单元的地址。因此,它的计数范围不能小于内存贮器中单元总数。
(2)为了指出起始地址和转移地址,指令计数器应当随时可以改变内容,以便转入子程序的起始位置或转入新的地址执行程序。2