新聞中心

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

Thumb指令集之: 單寄存器數(shù)據(jù)傳送指令

作者: 時(shí)間:2013-09-30 來(lái)源:網(wǎng)絡(luò) 收藏

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

11.5.7半字加載指令LDRH(1)

(1)編碼格式

半字?jǐn)?shù)據(jù)加載指令LDRH(1)的編碼格式如圖11.48所示。

圖11.48LDRH(1)指令的編碼格式

LDRH(1)半字?jǐn)?shù)據(jù)加載指令用于從內(nèi)存中將一個(gè)16位的半字?jǐn)?shù)據(jù)讀取到指令中的目標(biāo)寄存器中,并將寄存器的高16位清零。常用于結(jié)構(gòu)體的數(shù)據(jù)訪問(wèn)。域的基地址放在Rn寄存器中。

(2)指令的語(yǔ)法格式

LDRHRd>,[Rn>,#immed_5>*2]

①Rd>

目的寄存器。

②Rn>

指令的基址寄存器。

③immed_5>

5位立即數(shù)。該寄存器數(shù)值的2倍將與Rn>寄存器中的數(shù)值相加,形成內(nèi)存訪問(wèn)地址。

(3)指令操作的偽代碼

address=Rn+(immed_5*2)

ifaddress[0]==0

data=Memory[address,2]

else

data=UNPREDICTABLE

Rd=data

(4)對(duì)應(yīng)的指令

LDRHRd>,[Rn>,#immed_5>*2]

11.5.8半字?jǐn)?shù)據(jù)加載指令LDRH(2)

(1)編碼格式

半字?jǐn)?shù)據(jù)加載指令LDRH(2)的編碼格式如圖11.49所示。

LDRH(2)字節(jié)數(shù)據(jù)加載指令用于從內(nèi)存中將一個(gè)16位的半字?jǐn)?shù)據(jù)讀取到指令中的目標(biāo)寄存器中,并將寄存器的高16位清零。此種形式的LDRH(2)指令常用于數(shù)組元素的訪問(wèn)。

圖11.49LDRH(2)指令的編碼格式

(2)指令的語(yǔ)法格式

LDRBRd>,[Rn>,Rm>]

①Rd>

目的寄存器。

②Rn>

此寄存器存放內(nèi)存訪問(wèn)基地址。

③Rm>

此寄存器存放內(nèi)存訪問(wèn)偏移地址。

(3)指令操作的偽代碼

address=Rn+Rm

ifaddress[0]==0

data=memory[address,2]

else

data=UNPREDICTABLE

Rd=data

(4)對(duì)應(yīng)的指令

LDRHRd>,[Rn>,Rm>]



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉