歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> ARM的偽指令總結

ARM的偽指令總結

日期:2017/3/1 11:15:43   编辑:Linux編程

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