新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM架構與體系學習(三)——ARM處理器狀態

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

        作者: 時間:2016-11-21 來源:網絡 收藏
        ARM7有兩套指令系統,分別為ARM指令集和Thumb指令集。

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

        本文引用地址:http://www.104case.com/article/201611/319113.htm

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

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

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

        無論處理器處于何種狀態,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

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



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 金华市| 额济纳旗| 张北县| 平远县| 临朐县| 化德县| 龙海市| 贵定县| 阿勒泰市| 永善县| 宜川县| 扎囊县| 万州区| 陆河县| 临沧市| 新安县| 齐齐哈尔市| 四会市| 寻乌县| 阿拉善盟| 栾城县| 大荔县| 沁阳市| 诏安县| 麻栗坡县| 莱西市| 建湖县| 承德县| 从化市| 上犹县| 兴海县| 怀柔区| 大余县| 喜德县| 阜平县| 杨浦区| 扬州市| 忻州市| 西乌珠穆沁旗| 栾城县| 哈密市|