定義
記憶體資料暫存器是指用於存放欲寫入存儲體中的數據,或暫存從存儲體中讀出的數據,準備讓處理器處理的暫存器,即用來暫時存放處理器計算過程中所用到的運算元、結果和信息。數據暫存器用來暫時存放由主存儲器讀出的一條指令或一個數據字;反之,當向主存存入一條指令或一個數據字時,也將它們暫時存放在數據暫存器中。在單累加器結構的運算器中,數據暫存器還可兼作運算元暫存器。數據暫存器訪問速度最快,完屑戒全能與 CPU 協調工作。
類別
AX、BX、CX、DX可以稱為數據暫存器,這4個16位暫存器又可分別分成高8位(AH、BH、CH、DH)和低8位(AL、BL、CL、DL)。因此它們既可作為4個16位數據暫存器使用,也可作為8個8位數據暫存器使用,在編程時可存放源運算元、目的運算元或運算結果。數據暫存器是存放運算元、運算結果和運算的中間結果,以減少訪問存儲器的次數,或者存放從存儲器讀取的數據以及寫入存儲器的數據的暫存器。
AX(accumulator)累加器。作為累加器使用。是算術運算的主要暫存器。在乘、除等指令中指定用來存放運算元。以及所有的 I/O指令都使用這一暫存器與外部設備傳送信息。
BX(base)基址。可以作為通用暫存器使用。此外在計算機存儲地址時,它經常用作基址暫存器。
CX(count)計數。可以作為通用暫存器使民套姜用。常用來保存計數值,如在循環、位移和放府坑照串處理指令中作隱含計數器。
DX(data)數據。可以作為通用暫存器使用。一般在作雙字長運算時把DX和AX組合在一起存放一個雙字長數,DX用來存放高位數。對於某些I/O操作,DX可用來存放I/O的連線埠地址。
暫存器
暫存器,是積體電路中非常重要的一種存儲單元,通常由觸發器組成。在積體電路設只項乘刪計中,暫存器可分為電路內部使用的暫存器和充當內外部接口的暫存器這兩類。內部暫存器不能被外部電路或軟體訪問,只是為內部電路的實現存儲功能或滿足電路的束陵漏時序要求。而接口暫存器可以同時被內部電路和外部電路或軟體訪問,CPU中的暫存器就是其中一種,作為軟硬體的接口,為廣泛的通用編邀殃講程用戶所熟知。CPU中至少要有六類暫存器:指令暫存器(IR)、程式計數器(PC)、地址暫存器(AR)、數據暫存器(DR)、累加暫存器(AC)、程式狀態字暫存器(PSW)。這些暫存器用來暫存一個計算機字,其數目可以根據需要進行擴充。
指令暫存器
指令暫存器(Instruction Register,IR)用來保存當前正在執行的一條指令。當執行一條指令時,首先把該指令從主存讀取到數據暫存器中,然後再傳送至指令暫存器。
指令包括操作碼和地址碼兩個欄位,為了執行指令,必須對操作碼進行測試,識別出所踏料朵要求的操作,指令解碼器(Instruction Decoder,ID)就是完成這項工作的。指令解碼器對指令暫存器的操作碼部分進行解碼,以產生指令所要求操作的控制電位,並將其送到微操作控制線路上,在時序部件定時信號的作用下,產生具體的操作控制信號。指令暫存器中操作碼欄位的輸出就是指令解碼器的輸入。操作碼一經解碼,即可向操作控制器發出具體操作的特定信號。
程式計數器
程式計數器(Program Counter,PC)用來指出下一條指令在主存儲器中的地址。在程式執行之前,首先必須將程式的首地址,即程式第一條指令所在主存單元的地址送入PC,因此PC的內容即是從主存提取的第一條指令的地址。當執行指令時,CPU能自動遞增PC的內容,使其始終保存將要執行的下一條指令的主存地址,為取下一條指令做好準備。若為單字長指令,則(PC)+1àPC,若為雙字長指令,則(PC)+2àPC,以此類推。但是,當遇到轉移指令時,下一條指令的地址將由轉移指令的地址碼欄位來指定,而不是像通常的那樣通過順序遞增PC的內容來取得。因此,程式計數器的結構應當是具有暫存信息和計數兩種功能的結構。
地址暫存器
地址暫存器(Address Register,AR)用來保存CPU當前所訪問的主存單元的地址。由於在主存和CPU之間存在操作速度上的差異,所以必須使用地址暫存器來暫時保存主存的地址信息,直到主存的存取操作完成為止。當CPU和主存進行信息交換,即CPU向主存存入數據/指令或者從主存讀出數據/指令時,都要使用地址暫存器和數據暫存器。如果我們把外圍設備與主存單元進行統一編址,那么,當CPU和外圍設備交換信息時,我們同樣要使用地址暫存器和數據暫存器。
累加暫存器
累加暫存器通常簡稱累加器(Accumulator,AC),是一個通用暫存器。累加器的功能是:當運算器的算術邏輯單元ALU執行算術或邏輯運算時,為ALU提供一個工作區,可以為ALU暫時保存一個運算元或運算結果。顯然,運算器中至少要有一個累加暫存器。
程式狀態字暫存器
程式狀態字(Program Status Word,PSW)用來表征當前運算的狀態及程式的工作方式。程式狀態字暫存器用來保存由算術/邏輯指令運行或測試的結果所建立起來的各種條件碼內容,如運算結果進/借位標誌(C)、運算結果溢出標誌(O)、運算結果為零標誌(Z)、運算結果為負標誌(N)、運算結果符號標誌(S)等,這些標誌位通常用1位觸發器來保存。除此之外,程式狀態字暫存器還用來保存中斷和系統工作狀態等信息,以便CPU和系統及時了解機器運行狀態和程式運行狀態。因此,程式狀態字暫存器是一個保存各種狀態條件標誌的暫存器。
主存儲器
主存儲器(簡稱記憶體或主存)是計算機系統中一個主要部件, 用於保存進程運行時的程式和數據,也稱可執行存儲器,其容量對於當前的微機系統和大中型機,可能一般為數十 MB到數 GB,而且容量還在不斷增加,而嵌入式計算機系統一般僅有幾十 KB 到幾 MB。CPU的控制部件只能從主存儲器中取得指令和數據,數據能夠從主存儲器讀取並將它們裝入到暫存器中,或者從暫存器存入到主存儲器。CPU 與外圍設備交換的信息一般也依託於主存儲器地址空間。由於主存儲器的訪問速度遠低於 CPU 執行指令的速度,為緩和這一矛盾,在計算機系統中引入了暫存器和高速快取。
程式計數器
程式計數器(Program Counter,PC)用來指出下一條指令在主存儲器中的地址。在程式執行之前,首先必須將程式的首地址,即程式第一條指令所在主存單元的地址送入PC,因此PC的內容即是從主存提取的第一條指令的地址。當執行指令時,CPU能自動遞增PC的內容,使其始終保存將要執行的下一條指令的主存地址,為取下一條指令做好準備。若為單字長指令,則(PC)+1àPC,若為雙字長指令,則(PC)+2àPC,以此類推。但是,當遇到轉移指令時,下一條指令的地址將由轉移指令的地址碼欄位來指定,而不是像通常的那樣通過順序遞增PC的內容來取得。因此,程式計數器的結構應當是具有暫存信息和計數兩種功能的結構。
地址暫存器
地址暫存器(Address Register,AR)用來保存CPU當前所訪問的主存單元的地址。由於在主存和CPU之間存在操作速度上的差異,所以必須使用地址暫存器來暫時保存主存的地址信息,直到主存的存取操作完成為止。當CPU和主存進行信息交換,即CPU向主存存入數據/指令或者從主存讀出數據/指令時,都要使用地址暫存器和數據暫存器。如果我們把外圍設備與主存單元進行統一編址,那么,當CPU和外圍設備交換信息時,我們同樣要使用地址暫存器和數據暫存器。
累加暫存器
累加暫存器通常簡稱累加器(Accumulator,AC),是一個通用暫存器。累加器的功能是:當運算器的算術邏輯單元ALU執行算術或邏輯運算時,為ALU提供一個工作區,可以為ALU暫時保存一個運算元或運算結果。顯然,運算器中至少要有一個累加暫存器。
程式狀態字暫存器
程式狀態字(Program Status Word,PSW)用來表征當前運算的狀態及程式的工作方式。程式狀態字暫存器用來保存由算術/邏輯指令運行或測試的結果所建立起來的各種條件碼內容,如運算結果進/借位標誌(C)、運算結果溢出標誌(O)、運算結果為零標誌(Z)、運算結果為負標誌(N)、運算結果符號標誌(S)等,這些標誌位通常用1位觸發器來保存。除此之外,程式狀態字暫存器還用來保存中斷和系統工作狀態等信息,以便CPU和系統及時了解機器運行狀態和程式運行狀態。因此,程式狀態字暫存器是一個保存各種狀態條件標誌的暫存器。
主存儲器
主存儲器(簡稱記憶體或主存)是計算機系統中一個主要部件, 用於保存進程運行時的程式和數據,也稱可執行存儲器,其容量對於當前的微機系統和大中型機,可能一般為數十 MB到數 GB,而且容量還在不斷增加,而嵌入式計算機系統一般僅有幾十 KB 到幾 MB。CPU的控制部件只能從主存儲器中取得指令和數據,數據能夠從主存儲器讀取並將它們裝入到暫存器中,或者從暫存器存入到主存儲器。CPU 與外圍設備交換的信息一般也依託於主存儲器地址空間。由於主存儲器的訪問速度遠低於 CPU 執行指令的速度,為緩和這一矛盾,在計算機系統中引入了暫存器和高速快取。