凌阳教育的个人空间 https://blog.eetop.cn/204849 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

其他伪操作之二

已有 194 次阅读| 2016-1-29 17:05

1.       AREA

AREA伪操作用于定义一个代码段或数据段。ARM汇编程序中一般采用分段式设计,一个ARM源程序至少有一个代码段。

语法格式

AREA     sectionname{attr}{attr}…

其中:sectionname为所定义的代码段或数据段的名称。如果该名称及数字开头,则该名称必须用“|”括起来,如|1——datasec|。还有一些代码段具有约定的名称,如|.text|表示C语言编译器产生的代码段或者是与C语言库相关的代码段。

attr是该段的属性。在AREA伪操作中,各属性间用逗号隔开。下面列举所有可能的属性:

ALIGN=expression。默认的情况下,ELF(可执行连接文件,由链接器生成)的代码段和数据段是4字节对齐的。Expression可取0~31的数值,相应的对齐方式为(2expression次幂)字节对齐。如expression=4时,为16字节对齐。

ASSOC=section。指定与本段相连的ELF段。任何时候连接section段也必须包括sectionname段。

CODE定义代码段。默认属性为READONLY

COMDEF定义一个通用的段。该段可包含代码或数据。在其他源文件中,同名的COMDEF段必须相同。

COMMON定义一个公用的段。该段不包含任何用户代码和数据,链接器将其初始化为0.各源文件中同名的COMMON段共用同样的内存单元,链接器为其分配合适的尺寸。

DATA定义数据段。默认属性为READWRITE

NOINIT指定本数据段仅保留了内存单元,而没有将各初值写入内存单元,或者将各内存单元值初始化为0.

READONLY指定本段为只读,代码段的默认属性为READONLY

READWRITE指定本段为可读/写,数据段的默认属性为READWRITE

使用说明

通常可用AREA伪操作将程序分为多个ELF格式的段。一个大的程序可包括多个代码段和数据段。一个汇编程序至少包含一个代码段。

示例34   AREA伪操作举例

AREA     ExampleCODEREADONLY

凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 1

    获赞
  • 3

    评论
  • 3815

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 15:28 , Processed in 0.014738 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部