新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Thumb指令集之: Thumb跳轉指令

        Thumb指令集之: Thumb跳轉指令

        作者: 時間:2013-09-30 來源:網絡 收藏

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

        11.3.5帶返回鏈接的無條件BLX(2)

        (1)編碼格式

        帶返回鏈接的無條件BLX(2)的編碼格式如圖11.6所示。

        圖11.6BLX(2)指令的編碼格式

        該BLX(2)指令用于和Thumb子程序間的相互調用。程序狀態字的T標志位根據目的寄存器的bit[0]位而改變。

        (2)指令的語法格式

        BLXRm>

        其中Rm>為目標地址寄存器,r0~r14寄存器均可以做為目標地址寄存器。

        注意

        如果在此指令中使用r15作為目的寄存器,指令的執行結果不可預知。

        此指令只在v5版本以上指令集中被支持。

        (3)指令操作的偽代碼

        LR=(addressoftheinstructionafterthisBLX)|1

        TFlag=Rm[0]

        PC=Rm[31:1]1

        11.3.6舉例

        下面的例子程序綜合使用了各種跳轉指令,通過該例可以對Thumb狀態下程序的非連續執行有更深入的了解。

        Blabel ;無條件跳轉到Label地址

        BCClabel ;如果進位標志為0,則跳轉

        BEQlabel ;如果零標準位置1,則跳轉

        BLfunc ;子程序調用

        Func

        … ;子程序體

        MOVPC,LR ;子程序返回

        BXr12 ;跳轉到r12寄存器中保存的地址

        在執行此例中的BXr12時,如果r12的bit[0]=0,則處理器進入狀態執行,否則繼續執行Thumb代碼。


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 达日县| 昌宁县| 清流县| 溆浦县| 柘荣县| 西峡县| 安国市| 呼和浩特市| 巍山| 娱乐| 耿马| 墨脱县| 廉江市| 册亨县| 抚州市| 宁波市| 正镶白旗| 平定县| 眉山市| 长宁区| 镇康县| 安溪县| 黎平县| 福清市| 涪陵区| 怀柔区| 株洲市| 波密县| 中西区| 瓦房店市| 东安县| 武山县| 通海县| 景泰县| 夏河县| 扶绥县| 祁东县| 乐安县| 明光市| 大同县| 达孜县|