新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Thumb指令集之: 單寄存器數據傳送指令

Thumb指令集之: 單寄存器數據傳送指令

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

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

11.5.3LDR(3)

(1)編碼格式

LDR(3)的編碼格式如圖11.44所示。

圖11.44LDR(3)指令的編碼格式

LDR(3)允許將一個32位內存數據裝載到通用寄存器。此種形式的LDR指令常被用于訪問PC相關(PC-relative)數據。

(2)指令的語法格式

LDRRd>,[PC,#immed_8>*4]

①Rd>

目的寄存器。

②PC

程序指針寄存器,用于計算內存訪問的地址。計算地址時,PC值的bit[1]被系統(tǒng)默認為0進行計算,所以產生的內存訪問地址必為字對齊。

③immed_8>

8位立即數。該立即數的4倍將和PC值相加,形成內存訪問地址。

(3)指令操作的偽代碼

Address=(PC[31:2]2)+(immed_8*4)

Rd=Memory[address,4]

(4)對應的指令

LDRRd>,[PC,#immed_8>*4]

11.5.4寄存器裝載指令LDR(4)

(1)編碼格式

寄存器裝載指令LDR(4)的編碼格式如圖11.45所示。

圖11.45LDR(4)指令的編碼格式

寄存器裝載指令LDR(4)允許將一個32位內存數據裝載到通用寄存器。此種形式的LDR指令常被用于訪問堆棧數據。

(2)指令的語法格式

LDRRd>,SP,#immed_8>*4]

①Rd>

目的寄存器。

②SP

堆棧指針寄存器,用于計算內存訪問地址。

③immed_8>

8位立即數。該立即數的4倍將和SP值相加,形成內存訪問地址。

(3)指令操作的偽代碼

Address=SP+(immed_8*4)

Ifaddress[1:0]==0b00

Data=memory[address,4]

Else

Data=UNPREDICTABLE

Rd=data

(4)對應的指令

LDRRd>,[SP,#immed_8>*4]



評論


相關推薦

技術專區(qū)

關閉