<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è) > 嵌入式系統 > 設計應用 > Thumb指令集之: 單寄存器數據傳送指令

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

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

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

11.5

支持寄存器的裝載和存儲,即LDR和STR指令。8和類(lèi)型的Load/Store指令在中可用。這些指令使用兩種尋址模式:寄存器偏移和立即數偏移。指令所能存取的數據包括字、半字和字節,同時(shí)半字和字節可以為有符號數或無(wú)符號數。

表11.4總結了Thumb狀態(tài)下可用的數據傳送指令。

表11.4 Thumb狀態(tài)數據傳送指令

助記符

說(shuō)明

操作

LDR

傳送32位字到寄存器

Rd-mem32[address]

STR

存儲32位寄存器的值

Rd->mem32[address]

LDRB

傳送8位字節到寄存器

Rd-mem8[address]

STRB

保存寄存器中的字節

Rd->mem8[address]

LDRH

傳送16位半字到寄存器

Rd-mem16[address]

STRH

保存寄存器中的半字

Rd->mem16[address]

LDRSB

裝載有符號字節到寄存器

Rd-sighExtend(mem8[address])

STRSB

裝載有符號半字到寄存器

Rd-sighExtend(mem16[address])

Thumb數據傳送指令的基本語(yǔ)法格式分為以下4種。

①opcode1>Rd>,[Rn>,#5_bit_offset>]

其中,opcode1>:=LDR|LDRH|LDRB|STR|STRH|STRB

②opcode2>Rd>,[Rn>,Rm>]

其中,opcode2>:=LDR|LDRH|LDRB|LSRSH|STR|STRH|STRB

③LDRRd>,[PC,8_bit_offset>]

④opcode3>Rd>,[SP,#8_bit_offset>]

其中,opcode3>:=LDR|STR

下面詳細介紹各數據傳送指令的語(yǔ)法和使用。

11.5.1

(1)編碼格式

的編碼格式如圖11.42所示。

圖11.42指令的編碼格式

這種形式的LDR指令將32位內存數據裝載到通用寄存器。常用于結構體的數據訪(fǎng)問(wèn)。域的基地址放在Rn寄存器中。

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

LDRRd>,[Rn>,#immed_5>*4]

①Rd>

目的寄存器。用于存放從內存中取出的數據。

②Rn>

基址寄存器,用于存放所取數據的基地址。

③immed_5>

5位立即數。該立即數的4倍加上基址寄存器的值形成目標地址。

(3)指令操作的偽代碼

Address=Rn+(immed_5*4)

Ifaddress[1:0]==0b00

Data=Memory[address,4]

Else

Data=UNPREDICTABLE

Rd=data

(4)對應的指令

LDRRd>,[Rn>,#immed_5>*4]

注意

如果指令訪(fǎng)問(wèn)地址非字對齊,則指令的執行結果不可預知。

11.5.2LDR(2)

(1)編碼格式

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

圖11.43LDR(2)指令的編碼格式

寄存器裝載指令LDR(2)允許將一個(gè)32位內存數據裝載到通用寄存器。此種形式的LDR指令常被用于訪(fǎng)問(wèn)數組中的元素。

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

LDRRd>,[Rn>,Rm>]

①Rd>

目的寄存器。

②Rn>

寄存器存放內存訪(fǎng)問(wèn)基地址。

③Rm>

寄存器存放內存訪(fǎng)問(wèn)偏移地址。

(3)指令操作的偽代碼

Address=Rn+Rm

Ifaddress[1:0]==0b00

Data=Memory[address,4]

Else

Data=UNPREDICTABLE

Rd=data

(4)對應的指令

LDRRd>,[Rn>,Rm>]


上一頁(yè) 1 2 3 4 5 6 7 8 9 10 下一頁(yè)

評論


相關(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>