arm9的操作模式,暫存器,定址方式

2022-08-14 21:18:13 字數 1716 閱讀 9852

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...