在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM9學(xué)習(xí)筆記之——匯編

      ARM9學(xué)習(xí)筆記之——匯編

      作者: 時(shí)間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
      ARM系列芯片與PC系列(可能我說法不太準(zhǔn)確)芯片在指令設(shè)計(jì)上就有本質(zhì)的區(qū)別。ARM中每條指令是精簡指令集要么是32位,要么是16位。而PC的指令是復(fù)雜指令集,一條指令可以由多個(gè)字節(jié)組成。

      在寫ARM匯編程序時(shí),發(fā)現(xiàn)ARM的指令非常的靈活,同樣一個(gè)功能可以使用多種方式實(shí)現(xiàn)。給開發(fā)者更多DIY的地方。以下是一些小總結(jié),如有不正確的地方歡迎指正。

      本文引用地址:http://www.biyoush.com/article/201611/318807.htm

      1. 關(guān)于函數(shù)調(diào)用方法

      在ARM匯編中,函數(shù)調(diào)用非常靈活。

      (1)BL指令

      1. blinitmem;調(diào)用
      2. mem
      3. ....
      4. movpc,lr;返回

      BL指令在編譯時(shí),是以當(dāng)前指令地址為基準(zhǔn)相對(duì)跳轉(zhuǎn)。由于指令中地址區(qū)域?yàn)?6位,其中1位作前后標(biāo)志,剩下15位作為跳轉(zhuǎn)范圍。所以跳轉(zhuǎn)地址范圍為當(dāng)前地址前后32MB地址。

      (2)LDR PC, = xmain

      1. ldrlr,=endmain;保存絕對(duì)返回地址
      2. ldrpc,=xmain;絕對(duì)地址跳轉(zhuǎn)
      3. endmain
      4. bendmain

      當(dāng)編譯器在對(duì)LDR宏進(jìn)行編譯時(shí),xmain作為絕對(duì)地址賦給PC。

      (3)BX

      1. ldrr0,=xmain
      2. bxr0

      也是絕對(duì)地址跳轉(zhuǎn)。在跳轉(zhuǎn)中,可以進(jìn)行ARM與thumb指令集轉(zhuǎn)換。

      2.關(guān)于LDR與ADR宏

      在做“2.6.8內(nèi)存驅(qū)動(dòng)實(shí)驗(yàn)”時(shí),我關(guān)注了initmemloop前一個(gè)指令"adr r2, memdata"。嘗試著將它換成 ldr 進(jìn)行實(shí)驗(yàn)。

      經(jīng)過反匯編與寄存器跟蹤,我看到它們的區(qū)別:

      1. ldrr2,=memdata;r2=運(yùn)行地址
      2. adrr2,memdata;r2=加載地址
      3. ldrr2,memdata;r2=0x22000000
      4. adrr2,=memdata;編譯錯(cuò)誤



      關(guān)鍵詞: ARM9匯

      評(píng)論


      技術(shù)專區(qū)

      關(guān)閉