新聞中心

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

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

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

8.3帶狀態(tài)切換的連接

1.指令編碼格式

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

本文引用地址:http://m.butianyuan.cn/article/257054.htm

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

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

2.語法格式

BLXtarget_add>

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

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

②將結果左移兩位。

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

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

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

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

3.指令操作的偽代碼

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

第一種格式BLX指令。

LR=addressoftheinstructionaftertheBLXinstruction

TFlag=1

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

4.指令的使用

·從Thumb狀態(tài)返回到狀態(tài),使用BX指令。

BXr14

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

PUSH{registers>,r14}

……

POP{registers>,PC}

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


評論


相關推薦

技術專區(qū)

關閉