新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 數(shù)據(jù)傳送指令之:?jiǎn)渭拇嫫鞯腖oad/Store指令

數(shù)據(jù)傳送指令之:?jiǎn)渭拇嫫鞯腖oad/Store指令

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

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

5.3.4 用戶模式字(LDRT/STRT)

1.LDRT指令

(1)指令編碼格式

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

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

LDRT指令根據(jù)addr_mode>所確定的地址模式將一個(gè)32位字讀取到指令中的目標(biāo)寄存器Rd>。如果指令中的尋址方式確定的地址不是字對(duì)齊的,則讀出的數(shù)值要進(jìn)行循環(huán)右移。所移位數(shù)為尋址方式確定的地址bits[1∶0]的8倍。也就是說(shuō)處理器將取到的數(shù)值作為字的最低位處理。

圖5.9 LDRT指令編碼格式

當(dāng)處理器在特權(quán)模式下使用此指令時(shí),內(nèi)存系統(tǒng)將該操作當(dāng)作一般用戶模式下得內(nèi)存訪問(wèn)指令。

注意

指令的編碼格式中,P位指定位“0”,也就是說(shuō)LDRT指令的尋址方式為固定尋址方式,即后索引編碼尋址(post_indexed_addressing_mode)。

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

LDR{cond>}T Rd>,post_indexed_addressing_mode>

① cond>

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

② Rd>

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

③ post_indexex_address_mode>

使用后索引地址模式尋址。

注意

后索引地址模式中P=0并且W=0(即bit[21]=0、bit[24]=0)。但此指令P=0并且W=1(即bit[21]=1、bit[24]=0)。但實(shí)際的尋址操作是一樣的。

(3)指令操作的偽代碼

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

If ConditionPassed{cond} then

If address[1:0]==0b00

Rd=Memory[address,4]

Else if address[1:0]==0b01

Rd=Memory[address,4] Rotate_Right 8

Else if address[1:0]==0b10

Rd=Memory[address,4] Rotate_Right 16

Else address[1:0]==0b11

Rd=Memory[address,4] Rotate_Right 24

2.STRT指令

(1)指令編碼格式

STRT指令用于將一個(gè)32位的字?jǐn)?shù)據(jù)寫(xiě)入到指令中指定的內(nèi)存單元。

當(dāng)處理器在特權(quán)模式下執(zhí)行此指令時(shí),內(nèi)存系統(tǒng)將該操作當(dāng)作一般用戶模式下的內(nèi)存訪問(wèn)操作。

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

圖5.10 STR指令編碼格式

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

STR{cond>}T Rd>,post_indexed_addressing_mode>

① cond>

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

② Rd>

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

③ post_indexed_address_mode>

使用后索引地址模式尋址,參見(jiàn)LDRT指令。

(3)指令操作的偽代碼

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

If ConditionPassed{cond} then

Memory[address,4]=Rd

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




評(píng)論


相關(guān)推薦

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

關(guān)閉