0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

寄存器由什么組成

工程師 ? 來(lái)源:未知 ? 作者:姚遠(yuǎn)香 ? 2018-08-21 18:33 ? 次閱讀

寄存器概述

寄存器是中央處理器內(nèi)的組成部分。寄存器是有限存貯容量的高速存貯部件,它們可用來(lái)暫存指令、數(shù)據(jù)和地址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計(jì)數(shù)器(PC)。在中央處理器的算術(shù)及邏輯部件中,存器有累加器(ACC)。

寄存器的原理組成

寄存器的基本單元是D觸發(fā)器,按照其用途分為基本寄存器和移位寄存器。

基本寄存器是由D觸發(fā)器組成,在CP脈沖作用下,每個(gè)D觸發(fā)器能夠寄存一位二進(jìn)制碼。在D=0時(shí),寄存器儲(chǔ)存為0,在D=1時(shí),寄存器儲(chǔ)存為1。

在低電平為0、高電平為1時(shí),需將信號(hào)源與D間連接一反相器,這樣就可以完成對(duì)數(shù)據(jù)的儲(chǔ)存。

移位寄存器按照移位方向可以分為單向移位寄存器和雙向移位寄存器。

單向移位寄存器是由多個(gè)D觸發(fā)器串接而成。在串口Di輸入需要儲(chǔ)存的數(shù)據(jù),觸發(fā)器FF0就能夠儲(chǔ)存當(dāng)前需要儲(chǔ)存數(shù)據(jù),在CP發(fā)出一次時(shí)鐘控制脈沖時(shí),串口Di同時(shí)輸入第二個(gè)需要儲(chǔ)存是的數(shù)據(jù),而第一個(gè)數(shù)據(jù)則儲(chǔ)存到觸發(fā)器FF1中。

雙向移位寄存器排列,調(diào)換連接端順序,可以控制寄存器向左移位,增加控制電路可以使寄存器右移,這樣構(gòu)成雙向移位寄存器。

ARM寄存器組成

在ARM狀態(tài),16個(gè)通用寄存器(R0-R15)和一個(gè)狀態(tài)寄存器在任意時(shí)刻都可見(jiàn)。在特權(quán)(非用戶)模式下,將切換到指定模式的分組(banked)寄存器。(PS.分組寄存器的概念下文可見(jiàn))

ARM狀態(tài)時(shí)寄存器被設(shè)為包含16個(gè)直接可以訪問(wèn)的寄存器:R0到R15。除了R15,其他全部寄存器都為通用寄存器,如可能用于保存數(shù)據(jù)或地址值。除此之外,還有第17個(gè)寄存器用于存儲(chǔ)狀態(tài)信息。

R8~R14、SPSR寄存器則被切換到各個(gè)模式下的私有寄存器組上,不同的模式下可以訪問(wèn)相應(yīng)的私有寄存器。表1顯示了在每種模式下,哪些寄存器是有效的(陰影部分的寄存器都是私有寄存器)。

表1 ARM狀態(tài)下的寄存器組織結(jié)構(gòu)

從表1中我們可以看出:

☆ R0~R7、R15、CPSR寄存器組在任何模式下都是共用的,可訪問(wèn)的;

☆ R8~R12寄存器組在快中斷模式下(fiq)對(duì)應(yīng)一套私有寄存器組R8_fiq~R12_fiq,在其他模式下共用另一套寄存器組;

☆ R13、R14寄存器在用戶(user)和系統(tǒng)(sys)模式下共用一套;其他模式(管理(svc)、中止(abt)、未定義(und)、中斷(irq)、快中斷(fiq)模式)下都具有兩個(gè)私有寄存器R13和R14。這就使得這些模式中的每一種模式都具有各自的堆棧寄存器指針R13和鏈接寄存器R14,分別用于堆棧處理和異常退出;

☆ SPSR寄存器可用于保存CPSR的值,在用戶和系統(tǒng)模式下不能訪問(wèn),在其他模式下都有私有的SPSR寄存器。

表1中第二列列舉了寄存器在匯編語(yǔ)言中的名稱,其中括號(hào)中的內(nèi)容是別稱。下面我們對(duì)這些寄存器的功能進(jìn)行介紹。

1、一般通用寄存器 R0~R12

寄存器R0~R12為保存數(shù)據(jù)或地址值的一般通用寄存器。其中寄存器R0~R7為未分組的寄存器,R8~R12為分組寄存器。

未分組的寄存器意味著對(duì)于任何處理器模式,他們中的每一個(gè)都對(duì)應(yīng)于相同的32位物理寄存器。他們是完全通用的寄存器,

分組寄存器意味著同一個(gè)寄存器名對(duì)應(yīng)多個(gè)物理寄存器,具體所對(duì)應(yīng)的物理寄存器取決于當(dāng)前的處理器模式。參照表1,寄存器R8~R12有兩個(gè)分組物理寄存器。一組用于除FIQ模式之外的所有寄存器模式(R8~R12),另一組用于FIQ模式(R8_fiq~R12_fiq)。、

寄存器R8~R12在ARM體系結(jié)構(gòu)中沒(méi)有特定的用途。不過(guò)對(duì)于那些只使用R8~R14來(lái)說(shuō)就足夠處理的簡(jiǎn)單的中斷,F(xiàn)IQ所單獨(dú)使用的這些寄存器可實(shí)現(xiàn)快速的中斷處理。

2、堆棧指針 R13

寄存器R13(也稱為堆棧指針或SP)有6個(gè)分組的物理寄存器,見(jiàn)表2-1。一個(gè)用于用戶和系統(tǒng)模式,其余5個(gè)分別用于5種異常模式。

寄存器R13通常作為堆棧指針SP。在ARM指令集中,R13大都用在對(duì)各個(gè)模式下的堆棧操作。每個(gè)異常模式都具備私有的R13寄存器,它通常指向由異常模式所專用的堆棧。在入口處,通常將寄存器值保存到這個(gè)堆棧。在模式轉(zhuǎn)換前將當(dāng)前寄存器的值保存到堆棧中,然后從將要切換的模式堆棧中將這些值從堆棧重裝到已切換的模式寄存器中,這種處理方法可確保異常發(fā)生時(shí)的程序狀態(tài)不會(huì)被破壞。

3、鏈接寄存器 R14

寄存器R14(也稱為鏈接寄存器或LR)有6個(gè)分組的物理寄存器,見(jiàn)表2-1。一個(gè)用于用戶和系統(tǒng)模式,其余5個(gè)分別用于5種異常模式,對(duì)應(yīng)的私有寄存器有R14_svc,R14_irq,R14_fiq,R14_abt和R14_und。寄存器R14有三種用途:

☆ 當(dāng)發(fā)生異常時(shí),它被設(shè)置為該異常返回地址;

☆ 在執(zhí)行分支和鏈接(BL)指令時(shí),它用于保存子程序的返回地址;

☆ 而在其他時(shí)候,可以作為一個(gè)通用寄存器來(lái)對(duì)待。

4、程序計(jì)數(shù)器 R15

寄存器R15(也稱為程序計(jì)數(shù)器或PC)總是用于特殊用途,它總是指向下一條要讀取指令的地址。你可以把R15當(dāng)作通用寄存器使用,但使用時(shí)還有與指令有關(guān)的限制或特殊情況。如果R15使用的方式超過(guò)了這些限制,那么指令將是不可預(yù)測(cè)的。

由于ARM7采用3級(jí)流水線結(jié)構(gòu),在ARM狀態(tài)下,讀取R15的值是當(dāng)前執(zhí)行指令地址 + 8。ARM指令以字為單位,讀取R15結(jié)果的bit[1:0]總是為0b00。

對(duì)R15進(jìn)行寫(xiě)時(shí),如果這條寫(xiě)指令沒(méi)有超過(guò)對(duì)R15使用的限制,那么寫(xiě)入R15的正常結(jié)果值被當(dāng)成一個(gè)指令地址,程序會(huì)從這個(gè)地址處繼續(xù)執(zhí)行(相當(dāng)于執(zhí)行無(wú)條件跳轉(zhuǎn)指令)。因?yàn)锳RM指令以字為邊界,所以寫(xiě)入R15值的bit[1:0]通常為0b00。

5、CPSR和SPSR

所有模式共享一個(gè)程序狀態(tài)寄存器CPSR。在異常模式中,程序狀態(tài)保存寄存器SPSR可以被訪問(wèn),每種異常具有自己私有的SPSR。在進(jìn)入異常時(shí),它保存CPSR的當(dāng)前值;在異常退出時(shí),可通過(guò)它(SPSR)恢復(fù)CPSR。

寄存器的用途

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

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

3.可以用來(lái)讀寫(xiě)數(shù)據(jù)到電腦的周邊設(shè)備。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120375
  • D觸發(fā)器
    +關(guān)注

    關(guān)注

    3

    文章

    164

    瀏覽量

    47917
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ARM寄存器的分類及功能

    ARM寄存器是ARM處理內(nèi)部的重要組成部分,它們?cè)谔幚?b class='flag-5'>器的運(yùn)算、控制以及數(shù)據(jù)存儲(chǔ)等方面發(fā)揮著至關(guān)重要的作用。下面,我們將從ARM寄存器的定
    的頭像 發(fā)表于 09-05 14:18 ?1447次閱讀

    通用寄存器是什么意思

    在計(jì)算機(jī)體系結(jié)構(gòu)中,通用寄存器是中央處理(CPU)內(nèi)部最為核心和基礎(chǔ)的組成部分之一。它們被設(shè)計(jì)為能夠存儲(chǔ)和傳輸各種類型的數(shù)據(jù)和指令,是CPU進(jìn)行數(shù)據(jù)處理和運(yùn)算的關(guān)鍵工具。通用寄存器
    的頭像 發(fā)表于 09-05 14:13 ?956次閱讀

    寄存器故障分析

    寄存器故障分析是計(jì)算機(jī)硬件維護(hù)與系統(tǒng)穩(wěn)定性保障中的重要環(huán)節(jié)。寄存器作為計(jì)算機(jī)中的關(guān)鍵組成部分,負(fù)責(zé)存儲(chǔ)和傳輸數(shù)據(jù),其穩(wěn)定性和可靠性直接影響到整個(gè)計(jì)算機(jī)系統(tǒng)的性能。以下是對(duì)寄存器故障的全
    的頭像 發(fā)表于 08-29 11:26 ?1016次閱讀

    寄存器是什么意思?寄存器是如何構(gòu)成的?

    在計(jì)算機(jī)科學(xué)中,寄存器(Register)是一個(gè)高速存儲(chǔ)單元,它位于中央處理(CPU)內(nèi)部,用于存儲(chǔ)計(jì)算機(jī)程序執(zhí)行過(guò)程中所需要的數(shù)據(jù)、指令地址或狀態(tài)信息。寄存器是計(jì)算機(jī)體系結(jié)構(gòu)中至關(guān)重要的
    的頭像 發(fā)表于 08-02 18:23 ?4158次閱讀
    <b class='flag-5'>寄存器</b>是什么意思?<b class='flag-5'>寄存器</b>是如何構(gòu)成的?

    寄存器尋址和直接尋址的區(qū)別

    。 一、寄存器尋址 寄存器尋址的定義 寄存器尋址是一種將操作數(shù)直接存儲(chǔ)在CPU內(nèi)部寄存器中的尋址方式。在這種尋址方式下,指令的操作數(shù)地址直接
    的頭像 發(fā)表于 07-12 10:42 ?1795次閱讀

    寄存器尋址的實(shí)現(xiàn)方式

    在計(jì)算機(jī)體系結(jié)構(gòu)中,寄存器尋址是一種常見(jiàn)的尋址方式,它允許程序直接訪問(wèn)CPU內(nèi)部的寄存器。寄存器尋址可以提高程序的執(zhí)行效率,因?yàn)樗苊饬藢?duì)內(nèi)存的訪問(wèn)。 寄存器尋址的基本概念
    的頭像 發(fā)表于 07-12 10:36 ?664次閱讀

    寄存器分為基本寄存器和什么兩種

    寄存器是計(jì)算機(jī)中用于存儲(chǔ)數(shù)據(jù)的高速存儲(chǔ)單元,它們是CPU內(nèi)部的重要組成部分。寄存器可以分為基本寄存器和擴(kuò)展寄存器兩種類型。 一、基本
    的頭像 發(fā)表于 07-12 10:31 ?1375次閱讀

    移位寄存器的工作原理、類型及應(yīng)用

    移位寄存器是一種電子設(shè)備,用于存儲(chǔ)和操作數(shù)據(jù)。它一系列存儲(chǔ)單元組成,每個(gè)存儲(chǔ)單元可以存儲(chǔ)一位二進(jìn)制數(shù)字。移位寄存器的主要功能是將數(shù)據(jù)從一個(gè)存儲(chǔ)單元移動(dòng)到另一個(gè)存儲(chǔ)單元,從而實(shí)現(xiàn)數(shù)據(jù)的
    的頭像 發(fā)表于 07-12 10:22 ?1989次閱讀

    移位寄存器右移是怎么移位的

    將介紹移位寄存器的右移操作。 移位寄存器的基本概念 移位寄存器是一種具有多個(gè)存儲(chǔ)單元的線性結(jié)構(gòu),每個(gè)存儲(chǔ)單元可以存儲(chǔ)一個(gè)二進(jìn)制位(0或1)。移位寄存器通常
    的頭像 發(fā)表于 07-12 10:14 ?1457次閱讀

    什么是寄存器?有哪些功能和應(yīng)用?

    在計(jì)算機(jī)科學(xué)中,寄存器(Register)是一個(gè)高速存儲(chǔ)單元,用于存儲(chǔ)計(jì)算機(jī)程序執(zhí)行過(guò)程中所需要的數(shù)據(jù)、指令地址或狀態(tài)信息。它們是計(jì)算機(jī)體系結(jié)構(gòu)中至關(guān)重要的組成部分,對(duì)計(jì)算機(jī)的運(yùn)算速度和性能
    的頭像 發(fā)表于 05-30 17:14 ?1.3w次閱讀

    寄存器和內(nèi)存的區(qū)別

    在計(jì)算機(jī)體系結(jié)構(gòu)中,寄存器和內(nèi)存是兩個(gè)至關(guān)重要的組成部分。它們各自承擔(dān)著不同的角色,共同確保計(jì)算機(jī)系統(tǒng)的正常運(yùn)行。本文將對(duì)寄存器和內(nèi)存進(jìn)行詳細(xì)的介紹,包括它們的定義、功能以及二者之間的主要區(qū)別。
    的頭像 發(fā)表于 05-12 17:11 ?2290次閱讀

    移位寄存器的功能是什么 移位寄存器的工作原理

    、并行-串行轉(zhuǎn)換、數(shù)字時(shí)鐘分頻等功能。在計(jì)算機(jī)和通信系統(tǒng)中,移位寄存器具有重要的應(yīng)用,常常用于數(shù)據(jù)傳輸、數(shù)據(jù)緩存、數(shù)字信號(hào)處理等領(lǐng)域。 移位寄存器若干個(gè)觸發(fā)(Flip-flop)
    的頭像 發(fā)表于 02-03 16:43 ?6313次閱讀

    CPU的6個(gè)主要寄存器

    CPU寄存器是中央處理內(nèi)的組成部分,是有限存貯容量的高速存貯部件。寄存器是CPU內(nèi)部的元件,包括通用寄存器、專用
    的頭像 發(fā)表于 02-03 15:15 ?4317次閱讀

    寄存器的主要組成部分及分類

    通用寄存器是計(jì)算機(jī)處理中最常見(jiàn)的寄存器類型之一。它們通常用于存儲(chǔ)臨時(shí)數(shù)據(jù)、中間結(jié)果和計(jì)算過(guò)程中的變量。通用寄存器具有廣泛的用途,可以存儲(chǔ)不同類型的數(shù)據(jù)(如整數(shù)、小數(shù)、地址等),并被處
    的頭像 發(fā)表于 02-03 15:08 ?3290次閱讀

    移位寄存器的工作原理 移位寄存器左移和右移怎么算

    移位寄存器是一種用于在數(shù)字電路中實(shí)現(xiàn)數(shù)據(jù)移位操作的基本電路元件。它多個(gè)觸發(fā)以及相關(guān)控制電路組成,具有存儲(chǔ)、接受和移動(dòng)數(shù)據(jù)的功能。移位寄存器
    的頭像 發(fā)表于 01-18 10:52 ?8643次閱讀