ARM 匯編命令參考AREA
AREA 命令指示匯編程序匯編一個(gè)新的代碼段或數據段。段是獨立的、指定的、不可見(jiàn)的代碼或數據塊,它們由鏈接程序處理。
本文引用地址:http://dyxdggzs.com/article/201611/316782.htm語(yǔ)法
AREA sectionname{,attr}{,attr}...
其中:sectionname 是將要指定的段名。
可以為段選擇任何段名。但是,以一個(gè)數字開(kāi)始的名稱(chēng)必須包含在豎杠號內,否則會(huì )產(chǎn)生一個(gè)缺失段名錯誤。例如,|1_DataArea|。
有些名稱(chēng)是習慣性的名稱(chēng)。例如,|.text| 用于表示由 C 編譯程序產(chǎn)生的代碼段,或用于以某種方式與 C 庫關(guān)聯(lián)的代碼段。attr 是一個(gè)或多個(gè)用逗號分隔的段屬性。有效的屬性是:
ALIGN=expression
默認情況下,ELF 段在四字節邊界上對齊。expression 可以擁有 0 到 31 的任何整數。段在 2expression 字節邊界上對齊。例如,如果 expression 是 10,則段是在 1KB 邊界上對齊。這與 ALIGN 命令所指定的方式并不相同。
ASSOC=section
section 指定一個(gè)關(guān)聯(lián)的 ELF 段。sectionname必須包含在含有 section 的任何鏈接中。
CODE
包含機器指令。READONLY 是默認值。
COMDEF
是一個(gè)公共段定義。這是包含代碼或數據的 ELF 段。其必須等同于與其它源文件中擁有相同名稱(chēng)的任何其它段須是同一段。擁有相同名稱(chēng)的同一 ELF 段在存儲器的相同段中被鏈接程序覆蓋。如果有任何段不同,則鏈接程序產(chǎn)生一個(gè)警告,并且不覆蓋這些段。請參閱RealView 編譯工具 2.0 版鏈接程序和實(shí)用程序指南 中的鏈接程序 一章。
COMMON
是公共數據段。不能在其中定義任何代碼或數據。其由
鏈接程序初始化為零。擁有相同名稱(chēng)的所有公共段在存
儲器的相同段中被鏈接程序覆蓋。它們并不都需要具有
相同的大小。鏈接程序按每個(gè)名稱(chēng)的最大公共段的需要
分配空間。DATA
包含數據但不含指令。READWRITE 是默認值。
NOALLOC
表示在目標系統上沒(méi)有為此 AREA 分配存儲器。
NOINIT
表示數據段是未初始化的或初始化為零。其只包含零初始化的空間保留命令 SPACE 或 DCB、DCD、DCDU、DCQ、DCQU、DCW 或 DCWU??梢詻Q定在鏈接時(shí) AREA 是未初始化的還是零初始化的(請參閱RealView 編譯工具 2.0 版鏈接程序和實(shí)用程序指南 中的鏈接程序 一章)。
READONLY
表示不能寫(xiě)到此段中。這是代碼區域的默認情況。
READWRITE
表示可以讀和寫(xiě)此段。這是數據區域的默認情況
評論