當前位置:
首頁 > 知識 > ARM的7種工作模式和37個寄存器

ARM的7種工作模式和37個寄存器

ARM的7種工作模式

包括用戶模式和特權模式二大類,其中特權模式又分為系統模式和異常模式。CPU每次只能運行在一種工作模式下,各種模式之間的切換可以是程序員通過代碼主動切換(通過程序狀態寄存器CPSR)也可以時CPU自己在某種情況下自動切換。由於操作系統有安全級別的需要,因此CPU設計多種模式是為了操作系統的多種角色安全等級的需要。

用戶模式(usr): 非特權模式,大部分任務的執行都在這種模式。

快速中斷模式(fiq):Fast Interrupt Request,當高優先順序中斷產生時會進入。

外部中斷模式(irq):當普通中斷髮生時會進入。

超級用戶模式(svc):當複位或軟中斷(使用軟體認為製造的中斷)時進入。

數據訪問中止模式(abt):當CPU讀寫內存失敗便會進入。

未定義指令終止模式(und):CPU執行未定義指令失敗會進入。

系統模式(sys):運行特權操作系統任務。

注意:FIQ在中斷向量表中的地址為0x1C,即在該地址後沒有任何中斷向量表了,因此放FIQ的中斷處理程序可以完全放在這裡;而IRQ的為0x18。(也有的在FFFF001C以及FFFF0018),因此只能放一條跳轉指令,當該中斷髮生時還要從此處跳到真正的IRQ處理程序的地方執行,這也是導致IRQ比FIQ慢的原因之一。

1

32位的RAM共有37個寄存器

其中30個是通用型的,1個為程序控制寄存器PC,1個為程序狀態寄存器CPSR,5個固定用在異常模式下的SPSR。在每種模式下最多只能看到18個寄存器,其他的寄存器雖然名字相同但是在當前模式下都不可見。

CPSR的各個位都表明了CPU的某些狀態信息,比如I、F位和中斷、關中斷有關,比如bit0 - bit3決定了CPU的工作模式等。

PC指向哪裡,CPU就會執行那條指令,程序跳轉時就是把目標地址放在PC中。

ARM的7種工作模式和37個寄存器

打開今日頭條,查看更多精彩圖片

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

六種可定量分析的代碼味道
求助:threejs+qml+json模型載入失敗

TAG:程序員小新人學習 |