第4章GNU汇编伪指令集.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统;第4章 GNU汇编伪指令集;4.1 GNU汇编器的平台无关伪指令 ;/binutils/docs-2.12//Pseudo-Ops.html#Pseudo%20Ops;4.1.1 伪指令概念;伪指令格式;伪指令种类;4.1.2 符号定义伪指令;1.全局标号定义 作用:定义一个全局符号,通常是为连接器ld使用 格式: .global symbol .globl symbol ;2.局部标号定义 作用:定义对外部不可见的局部符号,作用域仅在当前文件中 格式: .local symbol ;3.变量赋值 作用:给一个全局变量或局部变量赋值 格式: .set symbol, expr ;4.宏替换 作用:给一个全局变量或局部变量赋值 格式: Symbol .equ expr ;4.1.3 数据定义伪指令;1.字节分配 作用:在存储器中分配一个字节,用指定的数据对其初始化 格式: label: .byte expr ;2.双字节分配 作用:在存储器中分配2个字节,并初始化 格式: label: .short expr ;3.四字节分配 作用:在存储器中分配4个字节,并初始化 格式: label: .word expr label: .long expr ;4.八字节分配 作用:在存储器中分配8个字节,并初始化 格式: label: .quad expr ;5.单精度浮点变量 作用:在存储器中分配4个字节,用指定的单精度浮点数初始化 格式: label: .float expr ;6.连续存储区域 作用:分配一片连续的存储器区域并初始化 格式: label: .space size, expr label: .skip size, expr ;7.字符串定义 作用:定义一个字符串 格式: label: .string str label: .ascii str label: .asciz str ;8.重复 作用:重复执行后面的命令 格式: .rept count commands .endr ;4.1.4 汇编控制伪操作;1.选择 作用:根据条件判断,决定是否执行某个指令序列 格式: .if logical-expression commands [ .else commands] .endif .if logical-expression commands .elseif logical-expression commands [.elseif logical-expression commands] .endif ;2.宏 作用:定义宏代码段,.macro: 定义一段宏代码, .macro表示代码的开始, .endm表示代码的结束, .exitm跳出宏 格式: .macro macroname macArgs commands .endm;举例;4.1.5 杂项伪操作;1.align 格式: .align abs-expr 作用:通过填充字节的方式,使当前位置满足一定的对齐方式 ;2.section 格式: .section sectioname 作用:??义一个段 ;3.data 格式: .data subsectionname 作用:定义数据段 ;4.text 格式: .text subsectioname 作用:定义指令段 ;5.include 格式: .include “filename” 作用:包含头文件 ;6.arm 格式: .arm 作用:定义一下代码使用arm指令集编译,功能等价于.code32 ;7.thumb 格式: .thumb 作用:定义一下代码使用thumb指令集编译,功能等价于.code16 ;8.extern 格式: .extern symbol 作用:声明一个外部符号 ;9.weak 格式: .weak symbol 作用:声明一个弱符号 ;10.end 格式: .end 作用:汇编结束;4.2 GNU汇编器支持的ARM伪指令;4.2.1 ADR伪指令;使用说明: ADR伪指令被汇编器编译成一条指令。汇编器通常使用ADD指令或SUB指令来实现伪操作的地址装载功能。如果不能用一条指令来实现ADR伪指令的功能,汇编器将报告错误。 示例: ;4.2.2 ADRL伪指令;使用说明: ADRL伪指令与ADR伪指令相似,用于将基于PC相对偏移的地址或基于寄存器相对偏移的地址值读取到寄存器中。所不同的是,ADRL伪指令比ADR伪指令可以读取更大范围的地址。这是因为在编译阶段,ADRL伪指令被编译器换成两条指令。即使一条指令可以完成该操作,编译器也将产生两条指令

文档评论(0)

151****0104 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档