加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 8.3  帶狀態(tài)切換的連接跳轉指令BLX(1)
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

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

2013/09/13
閱讀需 3 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

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

1.指令編碼格式

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

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

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

2.語法格式

BLX??<target_add>

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

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

②?將結果左移兩位。

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

④?將結果累加進程序計數(shù)器PC中。

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

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

3.指令操作的偽代碼

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

第一種格式BLX指令。

LR=address?of?the?instruction?after?the?BLX?instruction

T?Flag=1

PC=PC?+?PC?=?PC?+?(SignExtend(signed_immed_24)<<2)?+?(H<<1)

4.指令的使用

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

BX??r14

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

PUSH??{<registers>,r14}

……

POP??{<registers>,PC}

Arm

Arm

ARM公司是一家知識產(chǎn)權(IP)供應商,主要為國際上其他的電子公司提供高性能RISC處理器、外設和系統(tǒng)芯片技術授權。目前,ARM公司的處理器內核已經(jīng)成為便攜通訊、手持計算設備、多媒體數(shù)字消費品等方案的RISC標準。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知識產(chǎn)權(IP)供應商,主要為國際上其他的電子公司提供高性能RISC處理器、外設和系統(tǒng)芯片技術授權。目前,ARM公司的處理器內核已經(jīng)成為便攜通訊、手持計算設備、多媒體數(shù)字消費品等方案的RISC標準。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相關推薦

電子產(chǎn)業(yè)圖譜

華清遠見(www.farsight.com.cn)是國內領先嵌入師培訓機構,2004年注冊于中國北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營分公司。華清遠見除提供嵌入式相關的長期就業(yè)培訓、短期高端培訓、師資培訓及企業(yè)員工內訓等業(yè)務外,其下屬研發(fā)中心還負責嵌入式、Android及物聯(lián)網(wǎng)方向的教學實驗平臺的研發(fā)及培訓教材的出版,截止目前為止已公開出版70余本嵌入式/移動開發(fā)/物聯(lián)網(wǎng)相關圖書。企業(yè)理念:專業(yè)始于專注 卓識源于遠見。企業(yè)價值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。