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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM指令尋址方式之: 內(nèi)存訪問指令尋址

          ARM指令尋址方式之: 內(nèi)存訪問指令尋址

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

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

          雜類Load/Store指令的解碼格式如圖4.23所示。

          圖4.23 雜類Load/Store指令解碼格式

          編碼格式中各標(biāo)志位的含義如表4.5所示。

          表4.5 雜類Load/Store指令編碼格式各標(biāo)志位含義

          位 標(biāo) 識

          取 值

          含 義

          P

          P=0

          使用后索引尋址

          P=1

          使用偏移地址或前索引尋址(由W位決定)

          續(xù)表

          位 標(biāo) 識

          取 值

          含 義

          U

          U=0

          訪問的地址=基址寄存器的值-偏移量(offset)

          U=1

          訪問的地址=基址寄存器的值+偏移量(offset)

          W

          W=0

          如果P=0,使用后索引尋址;P=1,指令不改變基址寄存器的值

          W=1

          如果P=0,未定義指令;如果P=1,將計算的內(nèi)存訪問地址回寫到基址寄存器

          L

          L=0

          Store指令

          L=1

          Load指令

          S

          S=0

          無符號半字內(nèi)存訪問

          S=1

          有符號半字內(nèi)存訪問

          H

          H=0

          字節(jié)訪問

          H=1

          半字訪問

          注意

          當(dāng)S=0并且H=0時,并非無符號的字節(jié)內(nèi)存訪問指令。無符號的內(nèi)存訪問指令不使用該種尋址方式,詳見本章上一節(jié)。

          當(dāng)S=1并且L=0時,并非是有符號的存儲指令,而是未定義指令。指令并未區(qū)分有符號和無符號的字節(jié)和半字存儲。

          1.[Rn,#±offset_8>]

          (1)編碼格式

          指令的編碼格式如圖4.24所示。

          圖4.24 雜項內(nèi)存訪問指令——立即數(shù)偏移尋址編碼格式

          內(nèi)存訪問地址為基址寄存器Rn的值加(或減)立即數(shù)offset_8。

          編程中,在訪問結(jié)構(gòu)體或記錄(record)類型的變量時,這些內(nèi)存的操作指令是十分有效的。另外,在子程序中,也常用這些指令訪問本地變量和堆棧。當(dāng)offset_8=0時,內(nèi)存訪問地址即基址寄存器Rn的值。

          (2)

          LDR|STR{cond>}H|SH|SB|D Rd>,[Rn>,#±offset_12>]

          其中:

          · Rn為基址寄存器,該寄存器包含內(nèi)存訪問的基地址。

          · offset_8>為8位立即數(shù),內(nèi)存訪問地址偏移量。

          (3)操作偽代碼

          offset_8 = (immedH 4) OR immedL

          If U = = 1 then

          Address = Rn + offset_8

          Else

          Address = Rn – offset_8

          (4)說明

          ① 如果指令中沒有指定立即數(shù),使用[Rn>],編譯器按[Rn>,#0]形式編碼。

          ② 如果Rn被指定為程序計數(shù)器r15,其值為當(dāng)前指令地址加8。



          評論


          相關(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); })();