2011-08-08 60 views
2

我不太熟悉計算機(軟件)的理論,我想過這個問題 - 請問PC(程序計數器)總是要改變(我猜,在每個新的時鐘週期)?程序計數器是否總是必須改變(在時鐘滴答)?

我搜索了一下網上,發現Commodore 64 Programmers Reference Manual嘿嘿:)),其證實了這一點:「... 64代(或者,就此而言,任何一臺電腦),程序計數器總是在變化」 (以及Chapter 6: Hard, soft or firm?);但我只想讓它在這裏評論。我在想,如果一條指令設置了PC(或者更確切地說下一個PC),所以下一個執行地址和它當前的一樣,那麼就沒有辦法退出那個循環(除非有一些外部中斷,當然)?

回答

1

時,它需要改變程序計數器的變化。如果你的當前指令需要一段時間,或者你的程序不是當前正在執行的程序(請記住,大多數計算機正在運行多個執行線程),則不必在每個時鐘週期更改。

是,改變了PC,使其本身的變化,以一組指令,設置自己的指令集的開頭,設置本身的開始......正如你所看到的,是的,這會導致無限循環。這幾乎是20年前的「GOTO 10」情況。

+0

明白了 - 感謝解釋,@docmanhattan;乾杯! – sdaau

+0

不是'__10__ GOTO 10'? –

1

一般來說,程序計數器並沒有改變在每個時鐘週期。一條指令可能需要多個時鐘滴答執行,然後當它完成時,程序計數器會改變。

+0

謝謝你,@Ned Batchelder - 乾杯! – sdaau

相關問題