AREA |.text|, CODE, READONLY, ALIGN=2 ;AREA |.text| 選擇段 |.text|。
;CODE表示代碼段,READONLY表示只讀(缺省)
;ALIGN=2表示4字節對齊。若ALIGN=n,這2^n對齊
THUMB ;Thumb 代碼
REQUIRE8 ;指定當前文件要求堆棧八字節對齊
PRESERVE8 ;令指定當前文件保持堆棧八字節對齊
------------------------------------------------華麗分割線---------------------------------------------------------------------------------------
-------------------------------------關於 AREA |.text|, CODE, READONLY, ALIGN=2 ---------------------------------------------------
語法
AREA 段名 屬性1, 屬性2, ……
作用
用於定義一個代碼段或數據段。
段名若以數字開頭,則該段名需用“|”括起來,如|1_test| 。
屬性字段表示該代碼段(或數據段)的相關屬性,多個屬性用逗號分隔。
常用的屬性如下:
CODE 定義代碼段
DATA 定義數據段
READONLY
指定本段為只讀,代碼段默認為READONLY
READWRITE
指定本段為可讀可寫,數據段的默認為READWRITE
COMMON
定義一個通用的段,不包含任何的用戶代碼和數據。各源文件中同名的COMMON段共享同一段存儲單元。
實例:AREA Init,CODE,READONLY
語法
ALIGN {表達式{,偏移量}}
作用
通過添加填充字節的方式,使當前位置滿足一定的對齊方式。其中,表達式的值用於指定對齊方式,可能的取值為2的冪,如1、2、4、8、16等。若未指定表達式,則將當前位置對齊到下一個字的位置。偏移量也為一個數字表達式,若使用該字段,則當前位置的對齊方式為:2的表達式次冪+偏移量。
實例:AREA Init,CODE,READONLY,ALIGN=3
------------------------------------------------華麗分割線---------------------------------------------------------------------------------------
-----------------------------------------------關於 THUMB------------------------------------------------------------------------------------------
語法
THUMB
作用
表示以下的代碼都是THUMB代碼。
------------------------------------------------華麗分割線---------------------------------------------------------------------------------------
---------------------------------------關於 REQUIRE8及PRESERVE8 ------------------------------------------------------------------
語法
REQUIRE(語法格式:requite label)
作用
REQUIRE偽操作用於指定段之間的相互依賴關系.
格式如下:
REQUIRE lable ;其中lable 為所需要的標號的名稱.
當進行連接處理包含有“REQUIRE label”偽指令的源文件時,定義label 的源文件也將唄包含
語法
REQUIRE8及PRESERVE8
作用
REQUIRE8偽操作指示當前代碼中要求數據棧8字節對齊
PRESERVE8偽操作表示當前代碼中數據棧是8字節對齊的
說明
LDRD及STRD指令要求內存單元地址是8字節對齊的.當在程序中使用這些指令在數據棧中傳送數據時,要求該數據棧是8字節對齊的,這時就需要用REQUIRE8偽指令來說明.鏈接器要保證要求8字節對齊的數據棧代碼只能被數據棧是8字節對齊的代碼調用.
