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

          新聞中心

          ARM·指令集

          作者: 時(shí)間:2016-11-24 來(lái)源:網(wǎng)絡(luò) 收藏
          (馮諾依曼結(jié)構(gòu)就是程序存儲(chǔ)指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器結(jié)合在一起的結(jié)構(gòu))
          (RISC和CISC相對(duì),reduced 和 complex)
          1)單寄存器加載


          LDR/STR指令用于對(duì)內(nèi)存變量的訪(fǎng)問(wèn)、內(nèi)存緩沖區(qū)數(shù)據(jù)的訪(fǎng)問(wèn)、查表、外表部件的控制操作等。
          若使用LDR指令加載數(shù)據(jù)到PC寄存器,則實(shí)現(xiàn)程序跳轉(zhuǎn)功能 。
          *LDR和STR——字和無(wú)符號(hào)字節(jié)加載/存儲(chǔ)指令
          LDR/STR指令尋址非常靈活,它由兩部分組成,其中一部分為一個(gè)基址寄存器,可以為人一個(gè)通過(guò)寄存器;另一個(gè)部分為地址偏移寄存器。
          ①立即數(shù) LDR R1, [R0,#12] R1<-[R0+0x12]
          ②寄存器 LDR R1, [R0, R2] R1<-[R0+R2]
          ③寄存器及移位常數(shù) LDR R1, [R0,R2,LSL#2]; R1<-[R0+R2*4]
          *LDR/STR——半字和有符號(hào)字節(jié)加載/存儲(chǔ)指令

          2)批量數(shù)據(jù)加載/存儲(chǔ)指令

          *cond:執(zhí)行的條件
          *模式:控制地址的增長(zhǎng)方式,一共8種模式
          *?。罕硎驹诓僮鹘Y(jié)束后,將最后的地址寫(xiě)回Rn中
          reglist:表示寄存器列表,可以包含多個(gè)寄存器{R1,R2,R4-R9}
          ^:允許在用戶(hù)模式或系統(tǒng)模式下使用

          例子。

          【堆棧操作】
          *堆棧指針(SP)總是指向棧頂
          遞增堆棧:向高地址方向生長(zhǎng)
          遞減堆棧:向低地址方向生長(zhǎng)
          滿(mǎn)堆棧:堆棧指針向最后壓入堆棧的有效數(shù)據(jù)項(xiàng)
          空堆棧:堆棧指針指針向下一個(gè)要放入數(shù)據(jù)的空位置

          【關(guān)于最后的疑問(wèn):LDR/STR LDM/STM為什么加載的方式相反,是不是這課寫(xiě)錯(cuò)了】
          【數(shù)據(jù)交換指令】

          【異常產(chǎn)生指令】

          SWI 0 調(diào)用0中斷
          SWI 12 調(diào)用12中斷
          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: ARM指令

          評(píng)論


          技術(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); })();