新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM架構(gòu)與體系學習(三)——ARM處理器狀態(tài)

ARM架構(gòu)與體系學習(三)——ARM處理器狀態(tài)

作者: 時間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
ARM7有兩套指令系統(tǒng),分別為ARM指令集和Thumb指令集。

ARM指令集為32位長,具有最完整的功能;Thumb指令集為16位長度,能實現(xiàn)ARM指令集的大部分功能。

本文引用地址:http://butianyuan.cn/article/201611/319113.htm

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

ARM處理器有兩個處理器狀態(tài)與這2套指令集分別對應(yīng)。

以“當前程序狀態(tài)寄存器CPSR”中的控制位T反映處理器正在操作的狀態(tài),即哪種指令集正在執(zhí)行。T=0時,處理器處于ARM狀態(tài),執(zhí)行ARM指令。T=1時,處理器處于Thumb狀態(tài),執(zhí)行Thumb指令。其中處理器在系統(tǒng)上電時默認為ARM狀態(tài)。

無論處理器處于何種狀態(tài),ARM指令集與Thumb指令集不同同時混合使用。

BX指令可以實現(xiàn)將ARM內(nèi)核的操作狀態(tài)在ARM和Thumb之間進行切換。

PS:BX用法。

BX:帶狀態(tài)切換的跳轉(zhuǎn)指令,跳轉(zhuǎn)到Rm指定的地址執(zhí)行程序,若Rm的位[0]為1,則跳轉(zhuǎn)時自動將CPSR的標志T置位,即把目標地址的代碼解釋為Thumb狀態(tài)代碼;若Rm的位[0]為0,則跳轉(zhuǎn)時自動將CPSR中的標志T復位,即把目標地址的代碼解釋為ARM代碼,指令格式如下,

BX{cond} Rm

為了讓用戶更好地控制代碼量,才會設(shè)計了這兩套指令系統(tǒng)。



評論


技術(shù)專區(qū)

關(guān)閉