指令計數器又叫程序計數器或指令地址計數器,是用于存放準備執行的指令地址。
指令計數器的作用是把專門用來存放指令地址的部件設計成能夠自動加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