指令計數器

指令計數器

指令計數器,即程序計數器。它是計算機處理器中的寄存器,它包含當前正在執行的指令的地址(位置)。當每個指令被獲取,指令計數器的存儲地址加一。在每個指令被獲取之後,程序計數器指向順序中的下一個指令。當計算機重啟或複位時,程序計數器通常恢復到零。

簡介


指令計數器是計算機處理器中的一個包含當前正在執行指令地址的寄存器,也稱為程序寄存器(PC)。

工作原理


當執行一條指令時,首先需要根據指令計數器中存放的指令地址,將指令由內存取到指令寄存器中,此過程稱為“取指令”。與此同時,指令計數器中的地址或自動加1或由轉移指針給出下一條指令的地址。此後經過分析指令,執行指令。完成第一條指令的執行,而後根據指令計數器取出第二條指令的地址,如此循環,執行每一條指令。
當計算機重啟或複位時,程序計數器通常恢復到零。
在計算時,程序發出特殊的操作命令讓計算機執行。指令通過程序,給計算機處理器發出命令。在計算機中,地址在存儲或者內存中,都有專有的位置。寄存器是處理器使用的數據存放位置的一小部分。
計數器
計數器

相關


程序存儲器

在計算機的主存儲器中專門用來存放程序、子程序的一個區域。

指令寄存器

用來保存當前正在執行的一條指令。當執行一條指令時,先把它從內存取到數據寄存器(DR)中,然後再傳送至IR。指令劃分為操作碼和地址碼欄位,由二進位數字組成。為了執行任何給定的指令,必須對操作碼進行測試,以便識別所要求的操作。指令解碼器就是做這項工作的。指令寄存器中操作碼欄位的輸出就是指令解碼器的輸入。操作碼一經解碼后,即可向操作控制器發出具體操作的特定信號。

程序計數器

為了保證程序(在操作系統中理解為進程)能夠連續地執行下去,CPU必須具有某些手段來確定下一條指令的地址。而程序計數器正是起到這種作用,所以通常又稱為指令計數器。在程序開始執行前,必須將它的起始地址,即程序的一條指令所在的內存單元地址送入PC,因此程序計數器(PC)的內容即是從內存提取的第一條指令的地址。當執行指令時,CPU將自動修改PC的內容,即每執行一條指令PC增加一個量,這個量等於指令所含的位元組數,以便使其保持的總是將要執行的下一條指令的地址。由於大多數指令都是按順序來執行的,所以修改的過程通常只是簡單的對PC加1。當程序轉移時,轉移指令執行的最終結果就是要改變PC的值,此PC值就是轉去的地址,以此實現轉移。有些機器中也稱PC為指令指針IP(Instruction Pointer)。

地址寄存器

用來保存當前CPU所訪問的內存單元的地址。由於在內存和CPU之間存在著操作速度上的差別,所以必須使用地址寄存器來保持地址信息,直到內存的讀、寫操作完成為止。當CPU和內存進行信息交換,即CPU向內存存、取數據時,或者CPU從內存中讀出指令時,都要使用地址寄存器和數據緩衝寄存器。同樣,如果我們把外圍設備的設備地址作為像內存的地址單元那樣來看待,那麼,當CPU和外圍設備交換信息時,我們同樣使用地址寄存器和數據緩衝寄存器。