應(yīng)用

技術(shù)

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

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

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

導(dǎo)讀:科普分享篇

什么是寄存器

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

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

寄存器的用途

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

存于寄存器內(nèi)的地址可用來指向內(nèi)存的某個(gè)位置,即尋址。

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

什么是累加器

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

累加器的作用

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

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

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

什么是暫存器

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

暫存器結(jié)構(gòu)組成

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

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

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

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

暫存器的分類

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

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

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

浮點(diǎn)暫存器 ( FPR s) —— 用來儲(chǔ)存浮點(diǎn)數(shù)字。

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

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

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

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

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

累加器是寄存器嗎?

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

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

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

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

提到暫存器要從寄存器與存儲(chǔ)器來講:寄存器是 CPU 里的存儲(chǔ)單元,與 CPU 離得近,所以 CPU 在運(yùn)算時(shí)通常都會(huì)用寄存器當(dāng)中轉(zhuǎn)站。存儲(chǔ)器是在 CPU 外部的存儲(chǔ)器,例如,RAM、ROM。

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