ARM架構與體系學習(三)——ARM處理器狀態

ARM7有兩套指令系統,分別爲ARM指令集和Thumb指令集。spa

ARM指令集爲32位長,具備最完整的功能;Thumb指令集爲16位長度,能實現ARM指令集的大部分功能。設計

Thumb指令集具備極高的代碼密度(平均縮減30%的代碼量)。it

ARM處理器有兩個處理器狀態與這2套指令集分別對應。程序

以「當前程序狀態寄存器CPSR」中的控制位T反映處理器正在操做的狀態,即哪一種指令集正在執行。T=0時,處理器處於ARM狀態,執行ARM指令。T=1時,處理器處於Thumb狀態,執行Thumb指令。其中處理器在系統上電時默認爲ARM狀態。co

不管處理器處於何種狀態,ARM指令集與Thumb指令集不一樣同時混合使用。內核

BX指令能夠實現將ARM內核的操做狀態在ARM和Thumb之間進行切換。系統

PS:BX用法。

BX:帶狀態切換的跳轉指令,跳轉到Rm指定的地址執行程序,若Rm的位[0]爲1,則跳轉時自動將CPSR的標誌T置位,即把目標地址的代碼解釋爲Thumb狀態代碼;若Rm的位[0]爲0,則跳轉時自動將CPSR中的標誌T復位,即把目標地址的代碼解釋爲ARM代碼,指令格式以下,

BX{cond} Rm


爲了讓用戶更好地控制代碼量,纔會設計了這兩套指令系統。

相關文章
相關標籤/搜索