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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 加深對ARM匯編中對stmfd和ldmfd的理解

          加深對ARM匯編中對stmfd和ldmfd的理解

          作者: 時間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
          AREASTMFD,CODE,READONLY
          ENTRY
          CODE32
          START
          subsp,sp,#4 ;經(jīng)過此條語句過后,sp的值由原來的0變?yōu)榱?xfffffffc
          movr0,#0x1d ;將0x1d賦值給r0寄存器
          movr1,#0x1c;將0x1c賦值給r1寄存器


          stmfdsp!,{r0};將r0中的值壓入堆棧,壓入過程是,由于r0中的值為32位的,首先將sp減去4,將r0中的低八位放入sp這個位置(即fffffff8處放的是0x1d)
          第九位到第十六位放入sp+1的地址即(fffffff9處放的是0x00),將第十七位到第二十四位放入sp+2的位置(fffffffa處放的是0x00),將第二十五位到第三十二位放入
          sp+3的位置(fffffffb處放的是0x00).


          strr1,[sp,#4];將r1中的值壓入堆棧,壓入過程是,由于r1中的值為32位的,將r0中的低八位放入sp+4(fffffffc處放的是0x1c)這個位置
          第九位到第十六位放入sp+5的地址(fffffffd處放的是0x00),將第十七位到第二十四位放入sp+6的位置(fffffffe處放的是0x00),將第二十五位到第三十二位放入
          sp+7的位置(ffffffff處放的是0x00).
          .


          ldmfdsp!,{r2,r3};將堆棧中的內(nèi)容出棧,出棧過程是,將sp這個位置的值放入r2中的低八位,將sp+1這個位置的值放入r2中的第九
          位到第十六位,將sp+2這個位置的值放入r2中的第十七位到第二十四位,將sp+3這個位置的值放入r2中的第二十
          五位到第三十二位。(即r2中的值為0x0000001d)將sp+4這個位置的值放入r3中的低八位,將sp+5這個位置的值放入r3中的第九位到第十六位,將sp+6這個位置的值放入r3中的第十七位到第二十四位,將sp+4這個位置的值放入r3中的第二十
          五位到第三十二位(即r2中的值為0x0000001c)。同時sp=sp+8。




          bSTART


          END


          關(guān)鍵詞: ARM匯編stmfdldmf

          評論


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