第6章 ARM汇编伪指令和伪操作.ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
段属性定义伪操作AREA 段属性定义伪操作AREA用于定义一个代码段或数据段,AREA 伪操作指示汇编器汇编新的代码段或数据段。段是不可分的已命名独立代码或数据块,它们由链接器处理。 语法格式: AREA sectionname{,attr}{,attr}... 说明:AREA用于定义一个代码段、数据段或者特定属性段。如果段名以数字开头,那么该段名需要用“|”字符括起来如|7ss|,用C编译器产生的代码一般也用“|”括起来 属性部分表示该段代码段/数据段的相关属性,多个属性可以用“,”分隔。 常见属性如下: ①DATA:定义数据段 ②CODE:定义代码段 ③READONLY:本段为只读 ④ READWRITE:本段为可读写 ⑤ALIGN=表达式,默认对齐方式为2,如表达式=3,则对齐方式为8字节对齐,表达式的取值范围为0-31 ⑥COMMON属性:定义一个通用段,这个段不包含用户代码和数据。 对齐方式设置ALIGN 对齐方式设置ALIGN 伪操作通过用零或 NOP 指令进行填充来使当前位置与指定的边界对齐。 语法格式: ALIGN {expr{,offset{,pad {, padsize }}}} 举例: CODE32 AREA ||.data||,DATA,READWRITE,ALIGN=2 该段代码为32位ARM指令 引用了一个C的数据段 声明程序的入口点ENTRY ENTRY 伪操作声明程序的入口点。 语法格式: ENTRY 说明:在一个完整的汇编程序中至少要有一个ENTRY,程序中也可以有多个,此时,程序的真正入口点可在链接时指定。 举例: AREA armex,CODE,READONLY ENTRY ;程序入口地址 …… ;指令代码 源程序结尾标识END END 伪操作通知汇编程序它已到达源文件的末尾。 语法格式: END 6.3.6 文件包含伪操作 文件包含伪操作包括两类: 一类是将一个源文件包含到当前源文件中,并将被包含的文件在其当前位置进行汇编处理; 另一类是也将一个源文件包含到当前源文件中,但被包含文件不进行汇编处理。 文件包含GET 或 INCLUDE 语法格式: GET filename INCLUDE filename 其中: filename 是要在汇编中包含的文件名称。汇编程序接受 UNIX 或 MS-DOS格式的路径名。类似于C语言中的#include GET C:\TEST\INCLUDE_INIT.S 文件原样包含INCBIN 语法格式: INCBIN filename 其中: filename 是要在汇编中包含的文件名称。 汇编程序接受 UNIX 或 MS-DOS格式的路径名。 INCBIN C:\TEST\INCLUDE_INIT.S 注意,与INCLUDE不同点在于不进行汇编,可以用来包含可执行文件、文字或者其他数据,文件的内容将按字节逐一添加到当前ELF节中。 6.3.7其他类型伪操作 对齐方式设置ALIGN 段属性定义伪操作AREA 源程序结尾标识END 声明程序的入口点ENTRY 定义常量或标号名称EQU 声明全局标号EXPORT或GLOBAL 将符号导出到目标文件EXPORTAS 外部符号声明IMPORT 和 EXTERN 保留局部符号KEEP 禁止使用浮点指令NOFP 指定段的相关性REQUIRE 堆栈八字节对齐REQUIRE8 和 PRESERVE8 局部变量范围定义ROUT 定义常量或标号名称EQU 语法格式: name EQU expr{, type} 其中: name 是要为数值指定的符号名称。 expr 可以是一个寄存器相对的地址、程序相对的地址、绝对地址或 32 位整型常数。 可用”*”代替EQU,使用EQU方便之处是便于大量替换修改 例如:DD EQU 0x2400,CODE32 声明全局标号EXPORT或GLOBAL EXPORT 指令声明一个全局的符号,可由链接器用于解析不同的对象和库文件中的符号引用。 GLOBAL 是 EXPORT 的同义词。 语法格式: EXPORT {symbol} {[WEAK{,attr}]} GLOBAL {symbol} {[WEAK{,attr}]} [,WEAK]弱化选项,可选项声明其他文件有同名的标号,则其他文件中同名标号优先于该标号被引用。 例AREA armex,CODE,READONLY main PROC …… ENDP EXPORT main ;声明一个可全局引用的函数main 外部符号

文档评论(0)

xiaofei2001128 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档