CPU暫存器有什麼作用?什麼是專用暫存器?
CPU暫存器是計算機處理器的一部分,是一個小型且臨時的儲存單元,包含一組資料儲存位置。暫存器可以儲存指令、儲存地址或任何型別的資料。
在嘗試理解一些專用暫存器之前,讓我們先了解一下通用暫存器和專用暫存器的區別。
專用暫存器儲存程式的狀態。這些暫存器被指定用於特殊用途。其中一些暫存器是堆疊指標、程式計數器等。
通用暫存器在執行不同操作時儲存臨時資料。其中一些暫存器是累加器、BX等。
專用暫存器
讓我們看看CPU中使用的一些專用暫存器。
指令暫存器 (IR)
指令暫存器 (IR) 儲存當前正在執行的指令。在簡單的處理器中,每條要執行的指令都載入到指令暫存器中,並在解碼、準備和最終執行時將其儲存。
在LMC中,無條件分支(BRANCH)和零分支(BRANCH IF ZERO)代替了指令暫存器。
狀態暫存器
狀態暫存器、標誌暫存器或條件碼暫存器是基於處理器的狀態標誌集合。狀態暫存器也是一個硬體暫存器,包含有關處理器狀態的資訊。
該暫存器大小為16位,每一位代表一個標誌。狀態暫存器用於不同的條件,例如結果是否為負數、結果是否為零等。有不同型別的狀態暫存器,例如程式狀態暫存器儲存程式當前執行的狀態。
它還控制中斷的啟用和停用,並設定處理器的工作模式。
程式狀態暫存器分為以下幾部分:
應用程式程式狀態暫存器 (APSR)
中斷程式狀態暫存器 (IPSR)
執行程式狀態暫存器 (EPSR)
**如果標誌為Z** - 表示載入的算術運算結果為零。
**如果標誌為N** - 表示數學運算結果為負。
**如果標誌為V/O** - 表示運算結果太大,無法放入暫存器中。這就是結果溢位的原因。
**如果標誌為P** - 表示最後結果中設定位的數量是奇數還是偶數。
移位暫存器
移位暫存器是一種順序邏輯電路,能夠儲存和傳輸資料,由觸發器組成,並以這樣一種方式連線:一個觸發器的輸出將作為另一個觸發器的輸入(取決於使用哪種型別的移位暫存器)。
有六種型別的移位暫存器,如下所示:
**序列輸入-序列輸出移位暫存器** - 它以序列方式逐個輸入資料,並以類似的方式輸出資料。
**序列輸入-並行輸出移位暫存器** - 它以序列方式轉換資料,並以並行方式輸出資料。
**並行輸入-序列輸出移位暫存器** - 它並行接收資料,並以序列方式(一個接一個)輸出資料。
**並行輸入-並行輸出移位暫存器** - 並行輸入資料,並同時並行輸出資料。
**雙向移位暫存器** - 此移位暫存器可以執行向右或向左的資料移位,或者可以在這兩個方向上執行。
**計數器** - 它將其輸出反饋到裝置作為輸入,從而建立特定模式或序列。
累加器暫存器 (AC)
它用於儲存系統產生的結果。當CPU執行後給出結果時,所有結果都儲存到AC暫存器中。
儲存地址暫存器 (MAR)
它用於儲存資料和指令的記憶體地址。在指令的執行階段,它從記憶體中訪問資料和指令。例如,CPU想要將一些資料儲存到記憶體中或從記憶體中讀取資料。它將所需記憶體位置的地址放入MAR中。
程式計數器 (PC)
它包含下一條要執行指令的地址。換句話說,當微處理器執行當前指令時,它儲存下一條指令的記憶體位置的地址。