1. 程式人生 > 其它 >ARM體系結構與介面技術——ARM暫存器組織

ARM體系結構與介面技術——ARM暫存器組織

ARM處理器暫存器

暫存器的概念

暫存器是處理器內部的儲存器,沒有地址。

暫存器的作用

一般用於暫時存放參與運算的資料和運算結果。

暫存器分類

包括通用暫存器、專用暫存器、控制暫存器。


 

暫存器與工作模式

不同的工作模式下,能使用的暫存器是不一樣的。

即在某個特點的模式下只能使用當前模式下的暫存器,一個暫存器可能在多個工作模式下都可以使用。

如圖工作模式對應暫存器使用許可權。

*注:其中cortex-A9增加了Secure Monitor模式。


 

專用暫存器

R15(PC, Program Counter)

程式計數器,用於儲存當前取址指令的地址。

R14(LR, Link Register)

連結暫存器,一般有以下兩種用途:

  • 執行跳轉指令(BL/BLX)時,LR會自動儲存跳轉指令下一條指令的地址程式需要返回時將LR的值複製到PC即可實現。

    比如在main函式執行到第n條指令,該指令是是呼叫func函式,

    此時PC會跳到func函式的地址去取指令,與此同時,n+1會儲存在LR中。

    當func結束的時候,LR賦值到PC,那麼就回到main函式,並從n+1條指令繼續。

  •  產生異常時,對應異常模式下的LR會自動儲存被異常打斷的指令的下一條指令的地址,異常處理結束後將LR的值複製到PC可實現程式返回。

如圖:

 

 

 

R13(SP, Stack Pointer)

棧指標暫存器,用於儲存當前模式下的棧頂。

CPSR(Current Program Status Register)

當前程式狀態暫存器。

CPSR暫存器分為四個域,[31:24]為條件域用F表示、[23:16]為狀態域用S表示、[15:8]為預留域用X表示、[8:0]為控制域用C表示。