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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM指令尋址方式之: 數(shù)據(jù)處理指令的尋址方式

          ARM指令尋址方式之: 數(shù)據(jù)處理指令的尋址方式

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

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

          4.1 的尋址方式

          4.1.1 的尋址方式概要

          的基本語(yǔ)法格式如下。

          opcode> {cond>} {S} Rd>,Rn>,shifter_operand>

          其中shifter_operand>有下面11種形式,如表4.1所示。

          表4.1 shifter_operand>的尋址方式

          語(yǔ) 法

          尋 址 方 式

          1

          #immediate>

          立即數(shù)尋址

          2

          Rm>

          寄存器尋址

          3

          Rm>, LSL #shift_imm>

          立即數(shù)邏輯左移

          4

          Rm>, LSL Rs>

          寄存器邏輯左移

          5

          Rm>, LSR #shift_imm>

          立即數(shù)邏輯右移

          6

          Rm>, LSR Rs>

          寄存器邏輯右移

          7

          Rm>, ASR #shift_imm>

          立即數(shù)算術(shù)右移

          8

          Rm>, ASR Rs>

          寄存器算術(shù)右移

          9

          Rm>, ROR #shift_imm>

          立即數(shù)循環(huán)右移

          10

          Rm>, ROR Rs>

          寄存器循環(huán)右移

          11

          Rm>, RRX

          寄存器擴(kuò)展循環(huán)右移

          數(shù)據(jù)處理指令的尋址方式根據(jù)shifter_operand>的不同,相應(yīng)的分為11種。

          4.1.2 指令

          圖4.1顯示了數(shù)據(jù)處理指令不同尋址方式下的格式。

          圖4.1 數(shù)據(jù)操作指令編碼格式

          編碼格式中各域含義如下。

          · opcode>:確定具體指令。

          · S:標(biāo)識(shí)指令是否影響程序狀態(tài)寄存器CPSR條件標(biāo)志。

          · Rd:指令操作的目的寄存器。

          · Rn:指令第一源操作數(shù)。

          · bit[11∶0]:移位操作,詳見(jiàn)本章移位操作一節(jié)。

          · bit[25]:被用來(lái)區(qū)分是立即數(shù)移位操作還是寄存器移位操作。

          如果指令編碼出現(xiàn)下面情況:bit[25] = 0并且bit[4] = 1并且bit[7] = 1,則指令并非數(shù)據(jù)處理指令,它可能是Load/Store指令或算術(shù)指令。

          4.1.3 移位操作

          數(shù)據(jù)處理指令是在算術(shù)邏輯單元ALU中完成。處理器一個(gè)顯著特征就是可以在操作數(shù)進(jìn)入ALU之前,對(duì)操作數(shù)進(jìn)行指定位數(shù)的左移或右移操作。這種功能明顯增強(qiáng)了數(shù)據(jù)處理操作的靈活性。

          移位操作可能產(chǎn)生進(jìn)位,更新程序狀態(tài)寄存器CPSR的進(jìn)位標(biāo)志C。移位操作有下面3種基本方式。

          1.立即數(shù)方式

          沒(méi)有任何一條指令可以包含一個(gè)32位的立即數(shù),數(shù)據(jù)處理指令編碼格式中,第二個(gè)操作數(shù)有12位。指令的編碼格式如圖4.1所示。

          指令中的立即數(shù)是由一個(gè)8 bit的常數(shù)移動(dòng)4 bit偶數(shù)位(0,2,4,…,26,28,30)得到的。所以,每一條指令都包含一個(gè)8 bit的常數(shù)X和移位值Y,得到的立即數(shù)=X循環(huán)右移(2×Y)。

          注意

          8位立即數(shù)一定要移偶數(shù)位。

          下面列舉了一些有效的立即數(shù)。

          0xFF、0x104、0xFF0、0x FF00、0x FF000、0x FF000000、0x F000000F

          下面是一些無(wú)效的立即數(shù)。

          0x101、0x102、0x FF1、0x FF04、0x FF003、0x FFFFFFFF、0x F000001F

          下面是一些應(yīng)用立即數(shù)的指令。

          MOV r0,#0 ;送0到r0

          ADD r3,r3,#1 ;r3的值加1

          CMP r7,#1000 ;r7的值和1000比較

          BIC r9,r8,#0x FF00 ;將r8中8~15位清零,結(jié)果保存在r9中


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

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();