新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Thumb指令集之: 單寄存器數(shù)據(jù)傳送指令

Thumb指令集之: 單寄存器數(shù)據(jù)傳送指令

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

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

11.5.12寄存器存儲指令STR(2)

(1)編碼格式

寄存器存儲指令STR(2)的編碼格式如圖11.53所示。

圖11.53STR(2)指令的編碼格式

STR(2)將一個32位通用寄存器數(shù)據(jù)存儲到內存單元中。此種形式的STR指令常被用于訪問數(shù)組中的元素。

(2)指令的語法格式

LDRRd>,[Rn>,Rm>]

①Rd>

目的寄存器。

②Rn>

存放形成內存訪問地址的第一個寄存器。

③Rm>

存放形成內存訪問地址的第二個寄存器。

(3)指令操作的偽代碼

address=Rn+Rm

ifaddress[1:0]==0b00

Memory[address,4]==Rd

Else

Memory[address,4]==UNPREDICTABLE

(4)對應的指令

STRRd>,[Rn>,Rm>]

11.5.13寄存器存儲指令STR(3)

(1)編碼格式

寄存器存儲指令STR(3)的編碼格式如圖11.54所示。

圖11.54STR(3)指令的編碼格式

寄存器存儲指令STR(3)允許將一個32位通用寄存器的值存儲到內存。此種形式的STR指令常被用于訪問堆棧數(shù)據(jù)。

(2)指令的語法格式

STRRd>,[SP,#immed_8>*4]

①Rd>

目的寄存器。

②SP

堆棧指針寄存器,用于計算內存訪問的地址。

③immed_8>

8位立即數(shù)。該立即數(shù)的4倍將和堆棧指針寄存器SP的值相加,形成內存訪問地址。

(3)指令操作的偽代碼

address=SP+(immed_8*4)

ifaddress[1:0]==0b00

Memory[address,4]=Rd

Else

Memory[address,4]=UNPREDICTABLE

(4)對應的指令

STRRd>,[SP,#immed_8>*4]



評論


相關推薦

技術專區(qū)

關閉