ARM暫存器介紹

2021-09-29 08:49:55 字數 1329 閱讀 3716

arm暫存器介紹

arm處理器共有37個暫存器。其中包括:31個通用暫存器,包括程式計數器(pc)存內。這些暫存器都是32位暫存器。6個狀態暫存器。這些暫存器都是32位暫存器,但日前只使用了其中12位。arm處理器共有7種不同的處理器模式,在每一種處理器模式中有組相應的暫存器組。任意時刻(也就是任意的處理器模式下),可見的暫存器包括15個通用暫存器(r0~rl4)、乙個或兩個狀態暫存器及程式計數器(pc)。

1.51通用暫存器

通用暫存器可以分為下面3類

未備份奇存器( the unbanked registers),包括ro~r7

備份暫存器( the banked registers),包括r8~rl4

程式計數器pc,即r15

1.未備份暫存器

未備份暫存器包括r0~r7。對於每乙個未備份暫存器來說,在所有的處理器模式下指的都是同個物理暫存器。在異常中斷造成處理器模式切換時,由於不同的處理器模式使用相同的物理暫存器,可能造成暫存器中資料被破壞。未備份暫存器沒有被系統用於特別的用途,任何可採用通用暫存器的應用場合都可以使用未備份暫存器。

2.備份暫存器

對於備份暫存器r8~r12來說,每個暫存器對應兩個不同的物理暫存器。例如,當使用快速中斷模式下的暫存器時,暫存器r8和暫存器r9分別記作r8fiq、r9fiq;當使用使用者模式下的暫存器時,暫存器r8和暫存器r9分別記作r8usr、r9usr等。在這兩種情況下使的是不同的物理暫存器,系統沒有將這幾個暫存器用於任何的特殊用途,但是當中

斷處理非常簡單,僅僅使用r8~r14暫存器時,fiq處理程式可以不必執行儲存和恢復中斷現場的指令,從而可以使中斷處理過程非常迅速

備份寄器r|3和r14來說,每個寄器對應6個不同的物理暫存器,其中的乙個是使用者模式和系統模式共用的;另外旳5個對應於其他5種處理器模式。採用下面釣記號來區分各個物理暫存器

rl3 < mode >其中,< mode >可以是下面幾種模式之¨:usr、svc、abt、und、irq及fiq暫存器r13在arm中常用作棧指標。在arm指令集中,這只是一種慣的用法,並沒有任何指令強制性的使用r13作為棧指標,使用者也可以使用其他的暫存器作為棧指標;而在 thumb指令集中,有些指令強制性地使用r13作為棧指標。每種異常模式擁有己的物理的r13。應用程式初始化該r13,使其指向該異常模式專用的棧位址。當進入異常模式時,可以將需要使用的暫存器儲存在r13所指的棧中:當退出異常處理程式時,將儲存在r13所指的棧中的暫存器值彈出,這樣就使異常處理程式不會破壞被其中斷程式的執行現場。

ARM暫存器介紹

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

ARM暫存器整理

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

arm暫存器別名

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