應用

技術

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點新聞
企業(yè)注冊個人注冊登錄

寄存器、累加器、暫存器,傻傻分不清?

2020-09-29 09:40 與非網(wǎng)

導讀:科普分享篇

什么是寄存器

寄存器,是集成電路中非常重要的一種存儲單元,通常由觸發(fā)器組成。在集成電路設計中,寄存器可分為電路內部使用的寄存器和充當內外部接口的寄存器這兩類。

內部寄存器不能被外部電路或軟件訪問,只是為內部電路的實現(xiàn)存儲功能或滿足電路的時序要求。而接口寄存器可以同時被內部電路和外部電路或軟件訪問,CPU 中的寄存器就是其中一種,作為軟硬件的接口,為廣泛的通用編程用戶所熟知。

寄存器的用途

可將寄存器內的數(shù)據(jù)執(zhí)行算術及邏輯運算。

存于寄存器內的地址可用來指向內存的某個位置,即尋址。

可以用來讀寫數(shù)據(jù)到電腦的周邊設備。

什么是累加器

在中央處理器中,累加器 (accumulator) 是一種寄存器,用來儲存計算產生的中間結果。如果沒有像累加器這樣的寄存器,那么在每次計算 (加法,乘法,移位等等) 后就必須要把結果寫回到 內存,也許馬上就得讀回來。然而存取主存的速度是比從算術邏輯單元到有直接路徑的累加器存取更慢。

累加器的作用

在運算器中,累加器是專門存放算術或邏輯運算的一個操作數(shù)和運算結果的寄存器。能進行加、減、讀出、移位、循環(huán)移位和求補等操作。是運算器的主要部分。

在中央處理器 CPU 中,累加器(accumulator)是一種暫存器,它用來儲存計算所產生的中間結果。如果沒有像累加器這樣的暫存器,那么在每次計算(加法,乘法,移位等等)后就必須要把結果寫回到內存,然后再讀回來。然而存取主內存的速度是比從數(shù)學邏輯單元(ALU)到有直接路徑的累加器存取更慢。

在匯編語言程序中,累加器 —— AX 是一個非常重要的寄存器,但在程序中用它來保存臨時數(shù)據(jù)時,最后將其轉存到其它寄存器或內存單元中,以防止在其它指令的執(zhí)行過程中使其中的數(shù)據(jù)被修改,從而得到不正確的結果,為程序的調試帶來不必要的麻煩。

什么是暫存器

暫存器是用來暫存由數(shù)據(jù)總線或通用寄存的東西。它是中央處理器內的其中組成部分。 暫存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、 數(shù)據(jù)和位址 。

暫存器結構組成

在中央處理器的控制部件中,包含的暫存器有指令暫存器 (IR)和程式計數(shù)器 (PC)。在中央處理器的算術及邏輯部件中,包含的暫存器有累加器 (ACC)。

在電腦架構里,處理器中的暫存器是少量且速度快的電腦記憶體 ,借由提供快速共同地存取數(shù)值來加速電腦程式的執(zhí)行——典型地說就是在已知時間點所作的之計算中間的數(shù)值。

暫存器是記憶體階層中的最頂端,也是系統(tǒng)操作資料的最快速途徑。 暫存器通常都是以他們可以保存的位元數(shù)量來估量的。暫存器現(xiàn)在都以暫存器陣列的方式來實作,但是他們也可能使用單獨的正反器 、高速的核心記憶體 、 薄膜記憶體以及在數(shù)種機器上的其他方式來實作出來。

這個名詞通常都用來意指由一個指令之輸出或輸入可以直接索引到的暫存器群組更適當?shù)氖欠Q他們?yōu)椤凹軜嫊捍嫫鳌薄?例如, x86 指令及定義八個 32 位元暫存器的集合,但一個實作 x86 指令集的 CPU 可以包含比八個更多的暫存器。

暫存器的分類

資料暫存器 —— 用來儲存整數(shù)數(shù)字(參考以下的浮點暫存器)。在某些簡單 / 舊的 CPU,特別的資料暫存器是累加器 ,作為數(shù)學計算之用。

位址暫存器 —— 持有記憶體位址,以及用來存取記憶體 。在某些簡單 / 舊的 CPU 里,特別的位址暫存器是索引暫存器 (可能出現(xiàn)一個或多個)。

通用目的暫存器 ( GPR s) —— 可以保存資料或位址兩者,也就是說他們是結合資料 / 位址暫存器的功用。

浮點暫存器 ( FPR s) —— 用來儲存浮點數(shù)字。

常數(shù)暫存器 —— 用來持有唯讀的數(shù)值(例如 0、1、圓周率等等)。

向量暫存器 —— 用來儲存由向量處理器執(zhí)行 SIMD 指令所得到的資料。

特殊目的暫存器 —— 儲存 CPU 內部的資料,像是程式計數(shù)器 (或稱為指令指標),堆疊暫存器、以及狀態(tài)暫存器 (或稱微處理器狀態(tài)字組)。

指令暫存器 ( 英語 :instrucTIon register ) —— 儲存現(xiàn)在正在被執(zhí)行的指令

索引暫存器 ( 英語 :Index_register ) —— 是在程式執(zhí)行實用來更改運算元位址之用。

累加器是寄存器嗎?

累加器的符號是 A,顧名思義,其意思是加,但是其除了能做累加器外,(A)還能做寄存器。對于累加器,有一些特別的指令是專門針對累加器的,比如在 8086 中的 RL,以及 mul 等指令,而在 51 單片機中 RL 對應的寄存器只能是 A,總之 A 是個很特殊的寄存器,除了能做寄存器還能作累加器。

寄存器、累加器、暫存器有什么區(qū)別?

寄存器是 CPU 內部存儲單元,即寄存器是 CPU 的組成部份。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數(shù)據(jù)和位址等。

在 CPU 內部,累加器 (accumulator) 是一種寄存器,所有數(shù)學運算必須通過它進行傳遞和運算。

提到暫存器要從寄存器與存儲器來講:寄存器是 CPU 里的存儲單元,與 CPU 離得近,所以 CPU 在運算時通常都會用寄存器當中轉站。存儲器是在 CPU 外部的存儲器,例如,RAM、ROM。

暫存器顧名思義,就是暫時存放一定數(shù)量數(shù)據(jù)寄存器或存儲器。例如,目標寄存器和結果寄存器都已有數(shù)據(jù),需要第三個數(shù)據(jù)輸入;編程時某一邏輯信號經(jīng)常多次使用,中間結果需要暫時記憶。