ARM暫存器總結

2022-05-08 07:18:06 字數 1215 閱讀 5700

arm有16個32位的暫存器(r0到r15)。

r15充當程式暫存器pc,r14(link register)儲存子程式的返回位址,r13儲存的是堆疊位址。

arm有乙個當前程式狀態暫存器:cpsr。

一些暫存器(r13,r14)在異常發生時會產生新的instances,比如irq處理器模式,這時處理器使用r13_irq和r14_irq

arm的子程式呼叫是很快的,因為子程式的返回位址不需要存放在堆疊中。

1、 arm處理器共有37個暫存器,其中包括:

i. 31個通用暫存器,包括程式計數器(pc)在內。都是32位暫存器

ii. 6個狀態暫存器,都是32位暫存器,但目前只使用了其中12位

2、 arm處理器有7種不同的處理器模式,在每一種處理器模式中有一組相應的暫存器組。任意時刻(也就是任意的處理器模式下),可見的暫存器包括15個通用暫存器(r0~r14)、乙個或兩個狀態暫存器及程式計數器(pc)。在所有的暫存器中,有些是各模式共用的同乙個物理暫存器,有些是各模式自己擁有的獨立的物理暫存器。

3、 通用暫存器可以分為3類:未備份暫存器(r0~r7)、備份暫存器(r8~r14)和程式計數器pc(r15)。對於每乙個未備份暫存器來說,在所有的處理器模式下指的都是同乙個物理暫存器。對應備份暫存器r8~r12來說,每個暫存器對應兩個不同的物理暫存器,這使得中斷處理非常簡單。例如,僅僅使用r8~r14暫存器時,fiq處理程式可以不必執行儲存和恢復中斷現場的指令,從而使中斷處理過程非常迅速。對於備份暫存器r13和r14來說,每個暫存器對應6個不同的物理暫存器,其中的乙個是使用者模式和系統模式共用的,另外的5個對應於其他5種處理器模式。

4、 每一種異常模式擁有自己的物理的r13。應用程式初始化該r13,使其指向該異常模式專用的棧位址。當進入異常模式時,可以將需要使用的暫存器儲存在r13所指的棧中;當退出異常處理程式時,將儲存在r13所指的棧中的暫存器值彈出。這樣就使異常處理程式不會破壞被其中斷程式的執行現場。

5、 暫存器r14又被稱為連線暫存器(link register,lr),在arm體系中具有下面兩種殊的作用:

i. 每一種處理器模式自己的物理r14中存放當前子程式的返回位址。當通過bl或blx指令呼叫子程式時,r14被設定成該子程式的返回位址。在子程式中,當把r14的值複製到程式計數器pc中時,子程式即返回。

ii. 當異常中斷發生時,該異常模式特定的物理r14被設定成該異常模式將要返回的位址,對於有些異常模式,r14的值可能與將返回的位址有乙個常數的偏移量。具體的返回方式與子程式返回方式基本相同。

ARM暫存器整理

arm有37個暫存器,31個通用暫存器 r0 r15 32位 和6個狀態暫存器 1.通用暫存器 使用者模式 系統模式 特權模式 中止模式 未定義指令模式 外部中斷模式 快速中斷模式。可分為 未備份暫存器r0 r7 備份暫存器 r8 r14 程式計數器 pc r15 注 r0 r7在所有模式下指的同一...

ARM暫存器介紹

arm微處理器支援7種執行模式,分別為 1.使用者模式 usr arm處理器正常的程式執行狀態 2.快速中斷模式 fiq 用於高速資料傳輸或通道管理 3.外部中斷模式 irq 用於通用的中斷處理 4.管理模式 svc 作業系統使用的保護模式 5.資料訪問終止模式 abt 當資料或指令預取終止時進入該...

arm暫存器別名

apcs,arm 過程呼叫標準 arm procedure call standard 提供了緊湊的編寫例程的一種機制,定義的例程可以與其他例程交織在一起。最顯著的一點是對這些例程來自 沒有明確的限制。它們可以編譯自 c pascal 也可以是用組合語言寫成的。apcs 對我們通常稱為 r0 到 r...