a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > Thumb指令集之: 單寄存器數據傳送指令

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

作者: 時間:2013-09-30 來源:網絡 收藏

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

11.5

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

表11.4總結了Thumb狀態下可用的數據傳送指令。

表11.4 Thumb狀態數據傳送指令

助記符

說明

操作

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數據傳送指令的基本語法格式分為以下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

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

11.5.1

(1)編碼格式

的編碼格式如圖11.42所示。

圖11.42指令的編碼格式

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

(2)指令的語法格式

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]

注意

如果指令訪問地址非字對齊,則指令的執行結果不可預知。

11.5.2LDR(2)

(1)編碼格式

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

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

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

(2)指令的語法格式

LDRRd>,[Rn>,Rm>]

①Rd>

目的寄存器。

②Rn>

寄存器存放內存訪問基地址。

③Rm>

寄存器存放內存訪問偏移地址。

(3)指令操作的偽代碼

Address=Rn+Rm

Ifaddress[1:0]==0b00

Data=Memory[address,4]

Else

Data=UNPREDICTABLE

Rd=data

(4)對應的指令

LDRRd>,[Rn>,Rm>]


上一頁 1 2 3 4 5 6 7 8 9 10 下一頁

評論


相關推薦

技術專區

關閉