歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

ARM的偽指令總結

1)ENTRY
         設置程序默認入口點,一個程序可有多個ENTRY,但一個源文件最多只有一個ENTRY。

2)EQU
          EQU偽操用於將數字常量、基於寄存器的值和程序中的標號定義為一個字符名稱。語法格式:
          symbol EQU expression
          其中,expression可以是一個寄存器的名字,也可是由程序標號、常量或者32位的地址常量組成的表達式。symbol是EQU偽操作所定義的字符名稱。示例:COUNT EQU 0X1FFF

3)EXTERN/IMPORT
           IMPORT(EXTERN功能完全相同)用於聲明在其他模塊中定義但需要在本文件中使用的符號。EXTERN聲明的變量必須是在其他模塊中用EXPORT或GLOBAL聲明過的。

4)IMPORT class (symbol, symbol ...)
           其中,class為變量的類型,可以為ARM、CODE16、CODE32、DATA、CONST、THUMB;symbol為所聲明的變量名。

5)EXPORT/GLOBAL
           EXPORT(GLOBAL功能完全相同)用於聲明在本文件中定義但能在其他模塊中使用的變量,相當於定義了一個全局變量。語法格式:
           EXPORT symbol, symbol...
            其中,symbol為所聲明的變量名。

6)AREA
          AREA用於定義一個代碼段或數據段,ARM匯編程序設計采用分段式設計,一個ARM源程序至少有一個代碼段,大的程序會有若干個代碼段和數據段。語法格式:
           AREA segment-name, class-name, attributes ,...
           其中,segment-name為所定義段的名稱;class-name為所定義段的類型名稱,可以為系統類型(CODE, CONST, DATA, ERAM)或用戶定義類型;attributes為段的屬性。

7)END
           END用於標記匯編文件的結束行,即標號後的代碼不作處理。

8)Code[16|32]

          偽操作用於選擇當前匯編指令的指令集。參數16選擇Thumb指令集,參數32 選擇ARM指令集。

       語法格式:

       code[16|32]

9)align

       align偽指令通過添加補丁字節使當前位置滿足一定的對齊方式。

      語法格式:

       align {expr{,offset}}

       其中:expr為數字表達式,用於指定對齊的方式。取值為2的n次冪,如1、2、4、8等,不能為0。若沒有expr,則默認為字對齊方式。

       Offset為數字表達式。當前位置對齊到下面形式的地址處:offset+n*expr

      示例:

            align 4,3             ;字對齊

Copyright © Linux教程網 All Rights Reserved