ARM 寄存器 和 工作模式了解


一. ARM 工作模式

 

1.   ARM7,ARM9,ARM11,處理器有 7 種工作模式;Cortex-A 多了一個監視模式(Monitor

2.  用戶模式:非特權模式,大部分任務執行在這種模式,它運行在操作系統的用戶態,沒有權限操作其他硬件資源,只能執行處理自己的數據,也不能切換到其他模式下

3.  快速中斷模式 : 當一個高優先級(fast) 中斷產生時將會進入這種模式

4.  普通中斷模式 : 當一個低優先級(normal) 中斷產生時將會進入這種模式

5.  管理模式(SVC) :當復位或軟中斷指令執行時將會進入這種模式

6.  中止模式 : 當存取異常時將會進入這種模式 Undef : 當執行未定義指令時會進入這種模式

7.  系統模式 : 使用和User模式相同寄存器集的特權模式 Cortex-A 增加的工作模式:

8.  監控模式 : 是為了安全而擴展出的用於執行安全監控代碼的模式

 

 

二. ARM 指令集

 ARM指令集:一條指令占 32 位 ,4字節,影響 PC 中的地址

 

Thumb指令集: 一條指令占 16 位 ,2字節 

 

 

 

三. ARM 寄存器

Cortex-A 寄存器:標三角的是相應模式狀態下的獨立的寄存器;其他事通用寄存器,也就是各個模式下可以共同使用的寄存器;Cortex-A 共40個寄存器, 共23 個特殊功能寄存器,17 個通用寄存器。

  R13 :棧指針寄存器  SP 保存棧內存空間的首地址值

  R14:鏈接寄存器  LR   保存函數返回地址值

  R15:當前程序計數器  PC  保存當前取址指令的地址值

  CPSR:當前程序狀態寄存器

  SPSR:保存程序狀態寄存器,用來保存 CPSR 值

  PC 寄存器指向的地址值:

     對於ARM 狀態(arm指令集), PC 寄存器的低2位沒有定義 PC[1,0] ,arm指令占 4字節,也就是PC 中地址是4的倍數

    對於Thumb狀態(Thumb指令集),PC寄存器的低1位沒有定義 PC[0],Thumb占 2字節,也就是PC中地址是 2 的倍數, PC 中的地址就是每條執行指令的地址

 CPSR 寄存器中各bit 對應的功能

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM