CPU中的主要暫存器

2021-08-07 15:48:55 字數 1979 閱讀 3574

在cpu中至少要有六類暫存器:指令暫存器(ir)、程式計數器(pc)、位址暫存器(ar)、資料暫存器(dr)、累加暫存器(ac)、程式狀態字暫存器(psw)。這些暫存器用來暫存乙個計算機字,其數目可以根據需要進行擴充。

1. 資料暫存器

資料暫存器(data register,dr)又稱資料緩衝暫存器,其主要功能是作為cpu和主存、外設之間資訊傳輸的中轉站,用以彌補cpu和主存、外設之間操作速度上的差異。

資料暫存器用來暫時存放由主儲存器讀出的一條指令或乙個資料字;反之,當向主存存入一條指令或乙個資料字時,也將它們暫時存放在資料暫存器中。

資料暫存器的作用是 :

(1)作為cpu和主存、外圍裝置之間資訊傳送的中轉站;

(2)彌補cpu和主存、外圍裝置之間在操作速度上的差異;

(3)在單累加器結構的運算器中,資料暫存器還可兼作運算元暫存器。

2. 指令暫存器

指令暫存器(instruction register,ir)用來儲存當前正在執行的一條指令。

當執行一條指令時,首先把該指令從主存讀取到資料暫存器中,然後再傳送至指令暫存器。

指令包括操作碼和位址碼兩個字段,為了執行指令,必須對操作碼進行測試,識別出所要求的操作,指令解碼器(instruction decoder,id)就是完成這項工作的。指令解碼器對指令暫存器的操作碼部分進行解碼,以產生指令所要求操作的控制電位,並將其送到微操作控制線路上,在時序部件定時訊號的作用下,產生具體的操作控制訊號。

指令暫存器中操作碼欄位的輸出就是指令解碼器的輸入。操作碼一經解碼,即可向操作控制器發出具體操作的特定訊號。

3. 程式計數器

程式計數器(program counter,pc)用來指出下一條指令在主儲存器中的位址。

在程式執行之前,首先必須將程式的首位址,即程式第一條指令所在主存單元的位址送入pc,因此pc的內容即是從主存提取的第一條指令的位址。

當執行指令時,cpu能自動遞增pc的內容,使其始終儲存將要執行的下一條指令的主存位址,為取下一條指令做好準備。若為單字長指令,則(pc)+1àpc,若為雙字長指令,則(pc)+2àpc,以此類推。

但是,當遇到轉移指令時,下一條指令的位址將由轉移指令的位址碼欄位來指定,而不是像通常的那樣通過順序遞增pc的內容來取得。

因此,程式計數器的結構應當是具有寄存資訊和計數兩種功能的結構。

4. 位址暫存器

位址暫存器(address register,ar)用來儲存cpu當前所訪問的主存單元的位址。

由於在主存和cpu之間存在操作速度上的差異,所以必須使用位址暫存器來暫時儲存主存的位址資訊,直到主存的訪問操作完成為止。

當cpu和主存進行資訊交換,即cpu向主存存入資料/指令或者從主存讀出資料/指令時,都要使用位址暫存器和資料暫存器。

如果我們把外圍裝置與主存單元進行統一編址,那麼,當cpu和外圍裝置交換資訊時,我們同樣要使用位址暫存器和資料暫存器。

5. 累加暫存器

累加暫存器通常簡稱累加器(accumulator,ac),是乙個通用暫存器。

累加器的功能是:當運算器的算術邏輯單元alu執行算術或邏輯運算時,為alu提供乙個工作區,可以為alu暫時儲存乙個運算元或運算結果。

顯然,運算器中至少要有乙個累加暫存器。

6. 程式狀態字暫存器

程式狀態字(program status word,psw)用來表徵當前運算的狀態及程式的工作方式。

程式狀態字暫存器用來儲存由算術/邏輯指令執行或測試的結果所建立起來的各種條件碼內容,如運算結果進/借位標誌(c)、運算結果溢位標誌(o)、運算結果為零標誌(z)、運算結果為負標誌(n)、運算結果符號標誌(s)等,這些標誌位通常用1位觸發器來儲存。

除此之外,程式狀態字暫存器還用來儲存中斷和系統工作狀態等資訊,以便cpu和系統及時了解機器執行狀態和程式執行狀態。

因此,程式狀態字暫存器是乙個儲存各種狀態條件標誌的暫存器。

CPU中的主要暫存器

在cpu中至少要有六類暫存器。這些暫存器用來暫存乙個計算機字。根據需要,可以擴充其數目。下面詳細介紹這些暫存器的功能與結構。1.資料緩衝暫存器 dr 資料緩衝暫存器用來暫時存放由記憶體儲器讀出的一條指令或乙個資料字 反之,當向記憶體存入一條指令或乙個資料字時,也暫時將它們存放在資料緩衝暫存器中。緩衝...

CPU主要暫存器功能說明

ax 累加器 bx 基址暫存器 base cx 計數 count 迴圈時自動加1 dx 存放資料 data si source index register 源變址暫存器。di destination index register 目的變址暫存器。sp 堆疊指標 stack pointer 指向棧頂...

CPU暫存器操作方式

cpu暫存器的讀取方式,其實就是讀取某個位址中儲存的資料,只不過這個位址是晶元廠商規定好用於特定功能的。一般ide都會提供暫存器的標頭檔案,可以參考晶元的程式設計手冊,手冊中都有每個模組的暫存器定義,以及位址說明,如果你不想使用標頭檔案定義可以自己手動編寫,例如你想訪問乙個32位的暫存器位址為0xe...