<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

          作者: 時間:2013-09-30 來源:網(wǎng)絡 收藏

          本文引用地址:http://www.ex-cimer.com/article/257040.htm

          11.5.3LDR(3)

          (1)編碼格式

          LDR(3)的編碼格式如圖11.44所示。

          圖11.44LDR(3)指令的編碼格式

          LDR(3)允許將一個32位內(nèi)存數(shù)據(jù)裝載到通用寄存器。此種形式的LDR指令常被用于訪問PC相關(guān)(PC-relative)數(shù)據(jù)。

          (2)指令的語法格式

          LDRRd>,[PC,#immed_8>*4]

          ①Rd>

          目的寄存器。

          ②PC

          程序指針寄存器,用于計算內(nèi)存訪問的地址。計算地址時,PC值的bit[1]被系統(tǒng)默認為0進行計算,所以產(chǎn)生的內(nèi)存訪問地址必為字對齊。

          ③immed_8>

          8位立即數(shù)。該立即數(shù)的4倍將和PC值相加,形成內(nèi)存訪問地址。

          (3)指令操作的偽代碼

          Address=(PC[31:2]2)+(immed_8*4)

          Rd=Memory[address,4]

          (4)對應的指令

          LDRRd>,[PC,#immed_8>*4]

          11.5.4寄存器裝載指令LDR(4)

          (1)編碼格式

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

          圖11.45LDR(4)指令的編碼格式

          寄存器裝載指令LDR(4)允許將一個32位內(nèi)存數(shù)據(jù)裝載到通用寄存器。此種形式的LDR指令常被用于訪問堆棧數(shù)據(jù)。

          (2)指令的語法格式

          LDRRd>,SP,#immed_8>*4]

          ①Rd>

          目的寄存器。

          ②SP

          堆棧指針寄存器,用于計算內(nèi)存訪問地址。

          ③immed_8>

          8位立即數(shù)。該立即數(shù)的4倍將和SP值相加,形成內(nèi)存訪問地址。

          (3)指令操作的偽代碼

          Address=SP+(immed_8*4)

          Ifaddress[1:0]==0b00

          Data=memory[address,4]

          Else

          Data=UNPREDICTABLE

          Rd=data

          (4)對應的指令

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



          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();