<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 嵌入式系統 >> ARM >> 正文

      ARM匯編語言偽指令

      作者:佚名    文章來源:本站原創    點擊數:    更新時間:2008-11-28

      ARM匯編語言源程序語句,一般由指令,偽操作,宏指令和偽指令作成.

      ARM匯編語言的設計基礎是匯編偽指令,匯編偽操作和宏指令.

          偽操作,是ARM匯編語言程序里的一些特殊的指令助記符,其作用主要是為完成匯編程序做各種準備工作,在源程序運行匯編程序處理,而不是在計算機運行期間有機器執行.也就是說,這些偽操作只是匯編過程中起作用,一旦匯編結束,偽操作的使命也就隨之消失.

          宏指令,是一段獨立的程序代碼,可以插在程序中,它通過偽操作來定義,宏在被使用之前必須提前定義好,宏之間可以互相調用,也可自己遞歸調用.通過直接書寫宏名來使用宏.并本具宏指令的格式輸入輸出參數.宏定義本身不產生代碼,只是在調用它時把宏體插入到原程序中.宏與C語言中的子函數形參和實參的調用相似,調用宏時通過實際的指令來  代替宏體實現相關的一段代碼,但宏的調用與子程序的調用有本質的區別,既宏并不會節省程序的空間,其優點是簡化程序代碼,提高程序的可讀性以及宏內容可以同步修改.

          偽操作,宏指令一般與編譯程序有關,因此ARM匯編語言的偽操作,宏指令在不同的編譯環境下有不同的編寫形式和規則.
         
          偽指令也是ARM匯編語言程序里的特殊助記符,也不在處理器運行期間由機器執行,他們在匯編時將被合適的機器指令代替成ARM或Thumb指令,從而實現真正的指令操作.
         
          目前常用的ARM編譯環境有2種.
       

            1.       ADS/SDT IDE:ARM公司開發,使用了CodeWarrior公司的編譯器.

            2.       集成了GNU開發工具的IDE開發環境;它由GNU的匯編器as,交叉匯編器gcc和連接器id組成.

       ADS編譯環境下的ARM偽操作和宏指令,可參考北航出版社的<<ARM微控制器基礎與實踐》(周立功)

       這里主要講述ARM GNU常用匯編語言
       
      4 ARM GNU常用匯編語言介紹

      4.1 ARM GNU常用匯編偽指令介紹
      1. abort
      .abort: 停止匯編

      .align absexpr1,absexpr2:
      以某種對齊方式,在未使用的存儲區域填充值. 第一個值表示對齊方式,4, 8,16或32. 第二個表達式值表示填充的值.

      2. if...else...endif
      .if
      .else
      .endif: 支持條件預編譯

      3. include
      .include "file": 包含指定的頭文件, 可以把一個匯編常量定義放在頭文件中.
      4. comm
      .comm  symbol, length:在bss段申請一段命名空間,該段空間的名稱叫symbol, 長度為length. Ld連接器在連接會
      為它留出空間.

      5. data
      .data subsection: 說明接下來的定義歸屬于subsection數據段.

      6. equ
      .equ symbol, expression: 把某一個符號(symbol)定義成某一個值(expression).該指令并不分配空間.

      7. global
      .global symbol: 定義一個全局符號, 通常是為ld使用.

      8. ascii
      .ascii "string": 定義一個字符串并為之分配空間.

      9. byte
      .byte expressions: 定義一個字節, 并為之分配空間.

      10. short
      .short expressions: 定義一個短整型, 并為之分配空間.

      11. int
      .int expressions: 定義一個整型,并為之分配空間.

      12 long
      .long expressions: 定義一個長整型, 并為之分配空間.

      13 word
      .word expressions: 定義一個字,并為之分配空間, 4bytes.

      14. macro/endm
      .macro: 定義一段宏代碼, .macro表示代碼的開始, .endm表示代碼的結束.

      15. req
      name .req register name: 為寄存器定義一個別名.

      16. code
      .code [16|32]: 指定指令代碼產生的長度, 16表示Thumb指令, 32表示ARM指令.

      17. ltorg
      .ltorg: 表示當前往下的定義在歸于當前段,并為之分配空間.

      4.2 ARM GNU專有符號
      1. @
      表示注釋從當前位置到行尾的字符.

      2. #
      注釋掉一整行.

      3. ;
      新行分隔符.

      4.3 操作碼

      1. NOP
      nop
      空操作, 相當于MOV r0, r0

       

       

      2. LDR
      ldr <register> , = <expression>
      相當于PC寄存器或其它寄存器的長轉移.

      3.ADR
      adr <register> <label>
      相于PC寄存器或其它寄存器的小范圍轉移.

      ADRL
      adrl <register> <label>
      相于PC寄存器或其寄存器的中范圍轉移.


      5 可執行生成說明

       

      5.1 lds文件說明

      5.1.1 主要符號說明

          1. OUTPUT_FORMAT(bfdname)
          指定輸出可執行文件格式.
         
          2. OUTPUT_ARCH(bfdname)
         
          指定輸出可執行文件所運行CPU平臺
         
          3. ENTRY(symbol)
          指定可執行文件的入口段
         
          5.1.2 段定義說明
          1. 段定義格式
          SECTIONS
          { ...
              段名 :
              {
                  內容
              }
          ...
          }

      Tags:ARM,匯編語言,偽指令  
      責任編輯:admin
    4. 上一篇文章:
    5. 下一篇文章:
    6. 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 久久综合精品视频| 伊人久久综合影院| 亚洲国产精品综合久久久| 国产精品天天影视久久综合网| 久久亚洲精品成人综合| 亚洲欧洲av综合色无码| 久久综合亚洲色HEZYO国产| 亚洲综合一区二区国产精品| 99久久婷婷国产综合精品| 国产激情综合在线观看| 亚洲国产精品综合久久20| 伊人久久综合影院| 乱色熟女综合一区二区三区| 一本色道久久综合亚洲精品蜜桃冫| 九九综合VA免费看| 色偷偷亚洲第一综合网| 伊人yinren6综合网色狠狠| 亚洲综合日韩久久成人AV| 一本色道久久88亚洲综合 | 六月婷婷缴清综合在线| 综合久久国产九一剧情麻豆| 亚洲综合久久成人69| 国产婷婷色综合AV蜜臀AV| 久久本道综合久久伊人| 色婷婷色综合激情国产日韩| 婷婷亚洲综合五月天小说在线| 自拍 偷拍 另类 综合图片| 天天综合网色中文字幕| 国产成人亚洲综合色影视| 日韩综合无码一区二区| 青青热久久综合网伊人| 狠狠色婷婷七月色综合| 久久久久综合国产| 色噜噜狠狠色综合网| 五月婷婷综合免费| 色综合久久一本首久久| 亚洲国产成人精品无码久久久久久综合 | 伊人久久大香线蕉综合热线| 国产精品综合AV一区二区国产馆| 涩涩色中文综合亚洲| 国精产品自偷自偷综合下载|