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)始的名稱(chēng)必須包含在豎杠號(hào)內(nèi),否則會(huì)產(chǎn)生一個(gè)缺失段名錯(cuò)誤。例如,|1_DataArea|。
有些名稱(chēng)是習(xí)慣性的名稱(chēng)。例如,|.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 段。其必須等同于與其它源文件中擁有相同名稱(chēng)的任何其它段須是同一段。擁有相同名稱(chēng)的同一 ELF 段在存儲(chǔ)器的相同段中被鏈接程序覆蓋。如果有任何段不同,則鏈接程序產(chǎn)生一個(gè)警告,并且不覆蓋這些段。請(qǐng)參閱RealView 編譯工具 2.0 版鏈接程序和實(shí)用程序指南 中的鏈接程序 一章。
COMMON
是公共數(shù)據(jù)段。不能在其中定義任何代碼或數(shù)據(jù)。其由
鏈接程序初始化為零。擁有相同名稱(chēng)的所有公共段在存
儲(chǔ)器的相同段中被鏈接程序覆蓋。它們并不都需要具有
相同的大小。鏈接程序按每個(gè)名稱(chēng)的最大公共段的需要
分配空間。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。可以決定在鏈接時(shí) AREA 是未初始化的還是零初始化的(請(qǐng)參閱RealView 編譯工具 2.0 版鏈接程序和實(shí)用程序指南 中的鏈接程序 一章)。
READONLY
表示不能寫(xiě)到此段中。這是代碼區(qū)域的默認(rèn)情況。
READWRITE
表示可以讀和寫(xiě)此段。這是數(shù)據(jù)區(qū)域的默認(rèn)情況
評(píng)論