新聞中心

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

數(shù)據(jù)傳送指令之:單寄存器的Load/Store指令

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

本文引用地址:http://2s4d.com/article/257080.htm

(3)指令操作的偽代碼

if ConditionPassed{cond} then

Memory[address,1] = Rd[7:0]

5.3.3 半字(LDRH/STRH)

1.LDRH指令

(1)指令編碼格式

LDRH指令用于從內(nèi)存中將一個(gè)16位的半字讀取到目標(biāo)寄存器。

如果指令的內(nèi)存地址不是半字節(jié)對(duì)齊的,指令的執(zhí)行結(jié)果不可預(yù)知。

指令的編碼格式如圖5.7所示。

圖5.7 LDRH指令的編碼格式

(2)指令的語法格式

LDR{cond>}H Rd>,addr_mode>

① cond>

為指令編碼中的條件域。它指示LDRH指令在什么條件下執(zhí)行。當(dāng)cond>忽略時(shí),指令為無條件執(zhí)行(cond=AL(Alway))。

② Rd>

確定使用哪個(gè)通用寄存器作為目標(biāo)寄存器。

注意

如果PC作為目標(biāo)寄存器,指令的執(zhí)行結(jié)果不可預(yù)知。

③ addr_mode>

它確定了指令編碼中的I、P、U、W、Rn和addr_mode>位。所有的尋址模式中,都會(huì)確定一個(gè)基址寄存器Rn。

(3)指令操作的偽代碼

if ConditionPassed{cond} then

if address[0]==0

data=Memory[address,2]

else /*address[0]==1*/

data=unpredictable

Rd=data

注意

在包含系統(tǒng)控制協(xié)處理器的芯片應(yīng)用中,如果定義了地址對(duì)齊檢測,當(dāng)bit[0]!=0時(shí),將發(fā)生地址對(duì)齊異常。

2.STRH指令

(1)指令編碼格式

STRH指令從寄存器中取出指定的16位半字放入寄存器的低16位,并將寄存器的高位補(bǔ)0。

指令的編碼格式如圖5.8所示。

圖5.8 STRH指令的編碼格式

(2)指令的語法格式

STR{cond>}H Rd>,addr_mode>

① cond>

指令編碼中的條件域。它指示STRH指令在什么條件下執(zhí)行。當(dāng)cond>忽略時(shí),指令為無條件執(zhí)行(cond=AL(Alway))。

② Rd>

確定使用哪個(gè)通用寄存器作為目標(biāo)寄存器。

注意

如果PC作為目標(biāo)寄存器,指令的執(zhí)行結(jié)果不可預(yù)知。

③ addr_mode>

它確定了指令編碼中的I、P、U、W、Rn和addr_mode>位。所有的尋址模式中,都會(huì)確定一個(gè)基址寄存器Rn。

(3)指令操作的偽代碼

if ConditionPassed{cond} then

if address[0]==0

data=Rd[15:0]

else /*address[0]==1*/

data=unpredictable

Memory[address,2]=data

存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理




評(píng)論


相關(guān)推薦

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

關(guān)閉