arm 處理器有二十七個暫存器,其中一些是在一定條件下使用的,所以一次只能使用十六個...
暫存器 0 到暫存器 7 是通用暫存器並可以用做任何目的。不象 80x86 處理器那樣要求特定暫存器被用做棧訪問,或者象 6502 那樣把數學計算的結果放置到乙個累加器中,arm 處理器在暫存器使用上是高度靈活的。
暫存器 8 到 12 是通用暫存器,但是在切換到 fiq 模式的時候,使用它們的影子(shadow)暫存器。
暫存器 13 典型的用做 os 棧指標,但可被用做乙個通用暫存器。這是乙個作業系統問題,不是乙個處理器問題,所以如果你不使用棧,只要你以後恢復它,你可以在你的**中自由的占用(corrupt)它。每個處理器模式都有這個暫存器的影子暫存器。
暫存器 14 專職持有返回點的位址以便於寫子例程。當你執行帶連線的分支的時候,把返回位址儲存到 r14 中。同樣在程式第一次執行的時候,把退出位址儲存在 r14 中。r14 的所有例項必須被儲存到其他暫存器中(不是實際上有效)或乙個棧中。這個暫存器在各個處理器模式下都有影子暫存器。一旦已經儲存了連線位址,這個暫存器就可以用做通用暫存器了。
暫存器 15 是程式計數器。它除了持有指示程式當前使用的位址的二十六位數之外,還持有處理器的狀態。
為更清晰一些... 提供下列圖表:
user 模式 svc 模式 irq 模式 fiq 模式 apcs
r0 ------- r0 ------- r0 ------- r0 a1
r1 ------- r1 ------- r1 ------- r1 a2
r2 ------- r2 ------- r2 ------- r2 a3
r3 ------- r3 ------- r3 ------- r3 a4
r4 ------- r4 ------- r4 ------- r4 v1
r5 ------- r5 ------- r5 ------- r5 v2
r6 ------- r6 ------- r6 ------- r6 v3
r7 ------- r7 ------- r7 ------- r7 v4
r8 ------- r8 ------- r8 r8_fiq v5
r9 ------- r9 ------- r9 r9_fiq v6
r10 ------ r10 ------ r10 r10_fiq sl
r11 ------ r11 ------ r11 r11_fiq fp
r12 ------ r12 ------ r12 r12_fiq ip
r13 r13_svc r13_irq r13_fiq sp
r14 r14_svc r14_irq r14_fiq lr
------------- r15 / pc ------------- pc
最右側的列是 apcs **使用的名字,關於 apcs 的詳情參見這裡。
程式計數器構造如下:
位 31 30 29 28 27 26 25------------2 1 0
n z c v i f 程 序 計 數 器 s1 s0
對 r15 的詳細解釋,請參見 psr.html。
下面是你想知道的"模式",比如上面提及的"fiq"模式。
使用者模式,執行應用程式的普通模式。限制你的記憶體訪問並且你不能直接讀取硬體裝置。
超級使用者模式(svc 模式),主要用於 swi(軟體中斷)和 os(作業系統)。這個模式有額外的特權,允許你進一步控制計算機。例如,你必須進入超級使用者模式來讀取乙個外掛程式(podule)。這不能在使用者模式下完成。
中斷模式(irq 模式),用來處理發起中斷的外設。這個模式也是有特權的。導致 irq 的裝置有鍵盤、 vsync (在發生螢幕重新整理的時候)、ioc 定時器、序列口、硬碟、軟盤、等等...
快速中斷模式(fiq 模式),用來處理發起快速中斷的外設。這個模式是有特權的。導致 fiq 的裝置有處理資料的軟盤,串列埠(比如在 82c71x 機器上的 a5000) 和 econet。
irq 和 fiq 之間的區別是對於 fiq 你必須盡快處理你事情並離開這個模式。irq 可以被 fiq 所中斷但 irq 不能中斷 fiq。為了使 fiq 更快,所以有更多的影子暫存器。fiq 不能呼叫 swi。fiq 還必須禁用中斷。如果乙個 fiq 例程必須重新啟用中斷,則它太慢了並應該是 irq 而不是 fiq。
什麼是模式? 什麼是框架?
1 什麼是模式?模式,即pattern。其實就是解決某一類問題的方 你把解決某類問題的方法總結歸納到理論高度,那就是模式。alexander給出的經典定義是 每個模式都描述了乙個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在...
什麼是模式? 什麼是框架?
1 什麼是模式?模式,即pattern。其實就是解決某一類問題的方 你把解決某類問題的方法總結歸納到理論高度,那就是模式。alexander給出的經典定義是 每個模式都描述了乙個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在...
什麼是模式,什麼是框架
1 什麼是模式?模式,即pattern。其實就是解決某一類問題的方 你把解決某類問題的方法總結歸納到理論高度,那就是模式。alexander給出的經典定義是 每個模式都描述了乙個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在...