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