新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM處理器寄存器

        ARM處理器寄存器

        作者: 時間:2016-11-20 來源:網絡 收藏

        1.1.1ARM處理器不同模式下寄存器

        CPU的模式不同,在其對應模式下可以使用的寄存器也不相同,如表3-2所示:
        表3-2 ARM處理器模式下寄存器
        寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器
        用戶系統管理終止未定義中斷快中斷
        通用寄存器和程序計數器R0(a1)R0
        R1(a2)R1
        R2(a3)R2
        R3(a4)R3
        R4(v1)R4
        R5(v2)R5
        R6(v3)R6
        R7(v4)R7
        R8(v5)R8R8_fiq
        R9(SB,v6)R9R9_fiq
        R10(SL,v7)R10R10_fiq
        R11(FP,v8)R11R11_fiq
        R12(IP)R12R12_fiq
        R13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiq
        R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiq
        R15(PC)R15
        狀態寄存器CPSRCPSR
        SPSRSPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq
        其中R0~R7在所有模式下都可以使用的共有寄存器,R8~R12是快速中斷模式下私有的寄存器,其它模式下不能使用,之所以叫其快速中斷,是因為快速中斷模式下,這幾個私有寄存器里數據在模式切換時可以不用入棧保存。
        除了用戶模式和系統模式共用一組R13,R14,其余每種模式都私有自己的R13,R14,因為在每種模式下都有自己的棧空間用于執行程序,在執行程序過程中還要保存返回地址,這樣可以保證在進入不同模式時,當前模式下棧空間不被破壞。比如:網卡因為數據到達,產生了中斷進入中斷模式,在中斷模式下有自己的中斷處理例程(ISR),ISR在執行時要用到棧空間,因此要使用R13,R14。中斷處理完成后,返回用戶模式下,要繼續執行被網卡中斷信號中斷的執行程序。
        用戶模式和系統模式為什么要共用一組R13,R14呢?這是因為,在特權模式下可以自由切換工作模式,但是如果切換到用戶模式下,就不能再切換到特權模式了,這是CPU為操作系統提供的保護機制,但是有的時候就需要切換到用戶模式下去使用其R13,R14寄存器,比如當操作系統的進程進行上下文切換時,如果用戶模式和系統模式共用一組寄存器,那么可以切換到系統模式下(系統模式是特權模式)進行操作。
        所有R15和CPU同時只能處理一條指令,在取指時,有一個CPSR表示當前CPU的狀態即可。


        關鍵詞: ARM處理器寄存

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 从江县| 松溪县| 凌海市| 江口县| 洞口县| 太仆寺旗| 鸡泽县| 黑山县| 贺州市| 西乌| 苏尼特左旗| 关岭| 临汾市| 巴林左旗| 玉环县| 利津县| 闽清县| 彰武县| 于田县| 西充县| 会理县| 南平市| 呼玛县| 新营市| 荔波县| 乌兰察布市| 南涧| 广水市| 黄浦区| 南丹县| 海淀区| 江安县| 称多县| 利辛县| 武鸣县| 乐至县| 宝鸡市| 江达县| 亚东县| 湟源县| 类乌齐县|