1. AREA
AREA 指令指示汇编程序汇编一个新的代码段或数据段。段是独立的、指定的、不行见的代码或数据块,它们由链接程序处理。
语法
AREA sectionname{,attr}{,attr}…其间:
sectionname 是即将指定的段名。
可认为段挑选任何段名。可是,以一个数字开端的称号有必要包括在竖杠号内,否则会发生一个缺失段名过错。例如,|1_DataArea|。
有些称号是习惯性的称号。例如,|.text| 用于表明由 C 编译程序发生的代码段,或用于以某种方法与 C 库相关的代码段。attr 是一个或多个用逗号分隔的段特点。有用的特点是:
ALIGN=expression
默许状况下,ELF 段在四字节鸿沟上对齐。expression 能够具有 0 到 31 的任何整数。段在 2expression 字节鸿沟上对齐。例如,假如 expression 是 10,则段是在 1KB 鸿沟上对齐。这与 ALIGN 指令所指定的方法并不相同。
ASSOC=section
section 指定一个相关的 ELF 段。sectionname有必要包括在含有 section 的任何链接中。
CODE
包括机器指令。READONLY 是默许值。
COMDEF
是一个公共段界说。这是包括代码或数据的 ELF 段。其有必要等同于与其它源文件中具有相同称号的任何其它段须是同一段。具有相同称号的同一 ELF 段在存储器的相同段中被链接程序掩盖。假如有任何段不同,则链接程序发生一个正告,并且不掩盖这些段。请参阅RealView 编译东西 2.0 版链接程序和实用程序攻略 中的链接程序 一章。
COMMON
是公共数据段。不能在其间界说任何代码或数据。其由
链接程序初始化为零。具有相同称号的一切公共段在存
储器的相同段中被链接程序掩盖。它们并不都需求具有
相同的巨细。链接程序按每个称号的最大公共段的需求
分配空间。DATA
包括数据但不含指令。READWRITE 是默许值。
NOALLOC
表明在方针体系上没有为此 AREA 分配存储器。
NOINIT
表明数据段是未初始化的或初始化为零。其只包括零初始化的空间保存指令 SPACE 或 DCB、DCD、DCDU、DCQ、DCQU、DCW 或 DCWU。能够决定在链接时 AREA 是未初始化的仍是零初始化的(请参阅RealView 编译东西 2.0 版链接程序和实用程序攻略 中的链接程序 一章)。
READONLY
表明不能写到此段中。这是代码区域的默许状况。
READWRITE
表明能够读和写此段。这是数据区域的默许状况