<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

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

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

如果設置了L位,則進(jìn)行裝載,否則進(jìn)行存儲。

如果設置了P位,則使用預先變址尋址,否則使用過(guò)后變址尋址。

如果設置了U位,則給出的偏移量被加到基址寄存器上,否則從中減去偏移量。

如果設置了B位,傳送內存的一個(gè)字節,否則傳送一個(gè)字。這在助記符末尾添加后綴“B”,如MOV r7,r5變?yōu)镸OVB r7,r5。

W位的解釋依賴(lài)于使用的地址模式。

· 對于預先變址尋址,設置W位強制把它用做地址轉換的最終地址寫(xiě)回基址寄存器中(例如,傳送的副作用是Rn:= Rn +/-offset。這在匯編器中表示為給指令加上后綴“!”。)。

· 對于過(guò)后變址尋址,地址總是寫(xiě)回,設置 W 位指示在進(jìn)行傳送之前強制地址轉換。這在匯編器中表示為給指令加上后綴“T”。

當PC作為L(cháng)DR的目的寄存器Rd>時(shí),從存儲器取得的數據將被當作目標地址值,程序將跳轉到目標地址開(kāi)始執行。

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

LDR{cond>} Rd>,addr_mode>

① cond>

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

② Rd>

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

③ addr_mode>

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

(3)指令操作的偽代碼

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

If ConditionPassed{cond} then

If address[1:0] == 0b00 then

Value = Memory[address,4]

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

Value = Memory[address,4] Rotate_Right 8

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

Value = Memory[address,4] Rotate_Right 16

Eles /* address[1:0] == 0b11*/

Value = Memory[address,4] Rotate_Right 24

If (Rd is R15) then

If (architecture version 5 or above) then

PC = value AND 0xfffffffe

T Bit = value[0]

Else

PC = value AND 0xfffffffc

Else

Rd = value

(4)指令舉例

LDR r1,[r0,#0x12] ;將r0+12地址處的數據讀出,保存到r1中(r0的值不變)

LDR r1,[r0] ;將r0地址處的數據讀出,保存到r1中(零偏移)

LDR r1,[r0,r2] ;將r0+r2地址的數據讀出,保存到r1中(r0的值不變)

LDR r1,[r0,r2,LSL #2] ;將r0+r2×4地址處的數據讀出,保存到r1中(r0,r2的值不變)

LDR Rd,label ;label為程序標號,label必須是當前指令的±4KB范圍內

LDR Rd,[Rn],#0x04 ;Rn的值用作傳輸數據的存儲地址。在數據傳送后,將偏移量0x04與

Rn相加,結果寫(xiě)回到Rn中。Rn不允許是r15

注意

地址對齊問(wèn)題:大多數情況下,必須保證用于32位傳送的地址是32位對齊的。

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




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>