ARM 汇编命令参考AREA

本文详细介绍了ARM汇编语言中的AREA命令,包括其语法、段名规定及各种段属性如ALIGN、ASSOC、CODE、COMDEF等的作用与使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转至:http://blog.163.com/onebyte@126/blog/static/41998441200821201548857/


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

表示可以读和写此段。这是数据区域的默认情况
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值