程序计数器是否总是必须改变(在时钟滴答时)?

时间:2011-08-08 15:17:18

标签: counter software-design

我对计算(软件)理论并不熟悉,我想到了这个问题 - PC(程序计数器)是否总是要改变(我想,每次新的时钟滴答)?

我在线搜索了一下,发现Commodore 64 Programmers Reference Manual呵呵:) 确认了它:“ ... Commodore 64(或者,就此而言,任何计算机),程序计数器总是在改变“(以及Chapter 6: Hard, soft or firm?);但我只是想在这里评论一下。

我在想,如果一条指令设置了PC(或者更确切地说是下一台PC),那么下一个执行地址与它当前的地址相同,就没有办法退出该循环(除非有一些外部中断,当然)?

2 个答案:

答案 0 :(得分:1)

一般来说,程序计数器不必在每个时钟周期上改变。一条指令可以执行多个时钟周期,然后当它完成时,程序计数器会改变。

答案 1 :(得分:1)

程序计数器在需要更改时会更改。如果您当前的指令需要一段时间,或者您的程序不是当前正在执行的程序(请记住,大多数计算机运行多个执行线程),则不必在每个时钟周期内更改。

是的,更改PC,使其自身更改为一组指令的开头,这些指令将自身设置为设置自身的一组指令的开头......正如您所见,是的,这将导致无限环。这几乎就是旧的“20 GOTO 10”的情况。