新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 跳轉指令之:帶狀態切換的連接跳轉指令BLX(1)

        跳轉指令之:帶狀態切換的連接跳轉指令BLX(1)

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

        8.3帶狀態切換的連接

        1.指令編碼格式

        帶連接和狀態切換的BLX(BranchwithLinkExchange)使用標號,用于使程序跳轉到Thumb狀態或從Thumb狀態返回。該指令為無條件執行指令,并用分支寄存器的最低位來更新CPSR中的T位,將返回地址寫入到連接寄存器LR中。

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

        指令編碼格式如圖8.3所示。

        圖8.3BLX(1)指令編碼格式

        2.語法格式

        BLXtarget_add>

        其中,target_add>為指令的跳轉目標地址。該地址根據以下規則計算。

        ①將指令中指定的24位偏移量進行符號擴展,形成32位立即數。

        ②將結果左移兩位。

        ③位H(bit[24])加到結果地址的第一位(bit[1])。

        ④將結果累加進程序計數器PC中。

        計算偏移量的工作一般由匯編器來完成。這種形式的只能實現±32MB空間的跳轉。

        左移兩位形成字偏移量,然后將其累加進程序計數器PC中。這時,程序計數器的內容為BX指令地址加8字節。位H(bit[24])也加到結果地址的第一位(bit[1]),使目標地址成為半字地址,以執行接下來的Thumb指令。計算偏移量的工作一般由匯編器來完成。這種形式的跳轉指令只能實現±32MB空間的跳轉。

        3.指令操作的偽代碼

        指令操作的偽代碼如下面程序段所示。

        第一種格式BLX指令。

        LR=addressoftheinstructionaftertheBLXinstruction

        TFlag=1

        PC=PC+PC=PC+(SignExtend(signed_immed_24)2)+(H1)

        4.指令的使用

        ·從Thumb狀態返回到狀態,使用BX指令。

        BXr14

        ·可以在子程序的入口和出口增加棧操作指令。

        PUSH{registers>,r14}

        ……

        POP{registers>,PC}

        塵埃粒子計數器相關文章:塵埃粒子計數器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 平谷区| 日喀则市| 定安县| 正阳县| 凤冈县| 革吉县| 东海县| 武城县| 永昌县| 罗江县| 喀什市| 梨树县| 古田县| 滨州市| 余江县| 新建县| 怀来县| 山阴县| 福泉市| 民乐县| 新兴县| 铜鼓县| 怀仁县| 老河口市| 罗源县| 罗城| 祁门县| 拉萨市| 勃利县| 蒲城县| 寿光市| 陇川县| 丹东市| 新泰市| 融水| 曲沃县| 秦皇岛市| 古田县| 修武县| 益阳市| 康定县|