a
rm有7種工作模式:名稱
簡稱簡介
userusr
正常使用者程式執行的模式(linux
下使用者程式就是在這一模式執行的。)
fiqf
iq快速中斷模式
irqi
rq普通中斷模式
supervisorsvc
給作業系統準備的保護模式,許可權很高的一種模式,linux
的核心就是執行在此模式
abortabt
比如訪問虛擬記憶體,導致了異常,就是進入這一模式。
undefinedund
執行一條處理器並不支援的指令就進入此模式。
systemsys
armv4及以上的版本才有。用得比較少。
其暫存器總共有
37個,31
個通用暫存器,
6個狀態暫存器。大致結構如下,下圖總共有
18個,不夠
37個,剩下的實際是被
banked
的暫存器,在不同的模式下,分組暫存器和程式狀態暫存器用的是不同的物理暫存器。
下面兩個
下面兩個暫存器需要特別注意:
r13為
堆疊暫存器
r14為
lr暫存器
關於arm
中的程式狀態字暫存器,他相當於
m3中的狀態字暫存器,中斷遮蔽暫存器,
control
暫存器的集合體,下面對它的一些比較重要的位作說明:
n和z位代表的是運算結果的狀態,比較跳轉,條件執行等指令會用得到它們。
i位和f
位是對快速中斷和普通中斷的控制。
m位是對操作模式和
banked
暫存器的使用的控制。
注:cpsr
和spsr
內容相同,只不過
spsr
可以作為
cpsr
的乙個存檔使用,粗糙的說:也就是進入其他模式之前先把
cpsr
的內容儲存在
spsr
中,返回之後
cpsr
的值雖然已經被破壞,但是可以通過
spsr
回覆。a
rm有5
種定址方式,如下:
來自為知筆記(wiz)
詳解ARM9的CPSR暫存器
最近在學習嵌入式底層系統開發,在寫啟動 時要設定各個模式的sp,需要調整cpu的工作模式,部分 如下 equ disable irq,0x80 equ disable fiq,0x40 equ sys mod,0x1f equ irq mod,0x12 equ fiq mod,0x11 equ sv...
ARM9暫存器 ARM thumb 過程呼叫標準
根據 arm thumb 過程呼叫標準 1,r0 r3 用作傳入函式引數,傳出函式返回值。在子程式呼叫之間,可以將 r0 r3 用於任何用途。被呼叫函式在返回之前不必恢復 r0 r3。如果呼叫函式需要再次使用 r0 r3 的內容,則它必須保留這些內容。2,r4 r11 被用來存放函式的區域性變數。如...
基於ARM9程式狀態暫存器CPSR
定義 程式狀態暫存器 功能 反映資料運算狀態,控制系統模式等 特點 程式狀態暫存器不屬於通用暫存器 關於cpsr的訪問,arm專門為其設立了兩條指令 mrs cpsr到通用暫存器傳遞資料指令 msr 通用暫存器到cprs傳遞資料指令 1 msr 通用暫存器 cpsr 格式 msr 條件 cpsr s...