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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > arm匯編:ldr,str,ldm,stm,偽指令ldr

          arm匯編:ldr,str,ldm,stm,偽指令ldr

          作者: 時(shí)間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
          ldr,str,ldm,stm的命名規(guī)律:

          這幾個(gè)指令命名看起來不易記住,現(xiàn)在找找規(guī)律。

          本文引用地址:http://www.ex-cimer.com/article/201611/318798.htm
          指令樣本效果歸納名稱解釋
          ldr Rd,addressingldr r1,[r0]addressing to Rd [mem to reg]load to register
          str Rd,addressingstr r1,[r0]Rd ro addressing [reg to mem]store register
          ldm Rn,reglistldmfd sp!,{r0-r7,pc}*sp to reglist[mem to reg]load to reglist
          stm Rn,regliststmfd sp!,{r0-r7,lr}reglist to *sp[reg to mem]store reglist

          因此ldr,str,ldm,stm的命名均是以reg寄存器為主體,ld表示load裝載寄存器,st表示store保存寄存器。

          裝載的源頭、保存的去處就是內(nèi)存了。

          ldr同時(shí)還是偽指令,這時(shí)必然形為: ldr reg, =expr 。expr可以是一個(gè)32位立即數(shù),也可以是一個(gè)標(biāo)號(hào)。

          ldr意為大范圍地址讀取指令,并且讀的是基于pc的相對(duì)偏移的地址值。

          adr為小范圍地址讀取偽指令,將基于PC相對(duì)偏移的地址值讀取到寄存器中。adr register,exper

          可用于進(jìn)行程序跳轉(zhuǎn),也可用于在數(shù)據(jù)池中查找數(shù)據(jù)。

          adr r0,DispTab   ;加載轉(zhuǎn)換表地址到r0。; DispTab編譯后是一個(gè)固定的地址,這個(gè)地址后的空間存放了N個(gè)單位的數(shù)據(jù)。程序運(yùn)行起來后的地址和編譯地址或有不同。這個(gè)指令加載的是運(yùn)行時(shí)的地址。ldrb r1,[r0,r2]  ;以r2的值為偏移量,讀取轉(zhuǎn)化表中的數(shù)據(jù)到r1中。....DispTab     DCB 0xc0,0xf9,0xa4,0xb0

          adlr為中范圍地址讀取偽指令,比adr可讀取的地址范圍更大。

          ;=================; Memory control;=================BWSCON      EQU  0x48     ;Bus width & wait statusBANKCON0    EQU  0x48004     ;Boot ROM controlBANKCON1    EQU  0x48008     ;BANK1 controlBANKCON2    EQU  0x4800c     ;BANK2 controlBANKCON3    EQU  0x48010     ;BANK3 controlBANKCON4    EQU  0x48014     ;BANK4 controlBANKCON5    EQU  0x48018     ;BANK5 controlBANKCON6    EQU  0x4801c     ;BANK6 controlBANKCON7    EQU  0x48020     ;BANK7 controlREFRESH     EQU  0x48024     ;DRAM/SDRAM refreshBANKSIZE    EQU  0x48028     ;Flexible Bank SizeMRSRB6      EQU  0x4802c     ;Mode register set for SDRAM Bank6MRSRB7      EQU  0x48030     ;Mode register set for SDRAM Bank7;要設(shè)置的mem控制寄存器,共13個(gè)。;*******************************************;;in init.s  .
            .  .SetMemController
            adrl    r0, SMRDATA    ldr    r1,=BWSCON    ;BWSCON Addressadd    r2, r0, #52    ;End address of SMRDATA0ldr    r3, [r0], #4    ;unsigned int *pValue = (unsigned int*)SMRDATA ;  r3 = pValue[0] , pValue+=1;str    r3, [r1], #4    ;unsigned int *reg_addr = (unsigned int*)BWSCON ;  *reg_addr = r3 ; reg_addr+=1;cmp    r2, r0          ;if(pValue != SMRDATA+52) {loop };bne    %B0;end of SetMemController
            .
            .  .LTORGSMRDATA DATA; Memory configuration should be optimized for best performance; The following parameter is not optimized.; Memory access cycle parameter strategy; 1) The memory settings is  safe parameters even at HCLK=75Mhz.; 2) SDRAM refresh period is for HCLK<=75Mhz.DCD (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))   ;GCS0DCD ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))   ;GCS1DCD ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))   ;GCS2DCD ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))   ;GCS3DCD ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))   ;GCS4DCD ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))   ;GCS5DCD ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))    ;GCS6DCD ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))    ;GCS7DCD ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Tsrc<<18)+(Tchr<<16)+REFCNT)DCD 0x32        ;SCLK power saving mode, BANKSIZE 128M/128MDCD 0x20        ;MRSR6 CL=2clkDCD 0x20        ;MRSR7 CL=2clk
          ;mem設(shè)置參數(shù)值的數(shù)據(jù)池。共13*4bytes。;*********************************************************  .  .  .



          評(píng)論


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