2014年ARM与嵌入式技术 培训课件 第5章.pptVIP

2014年ARM与嵌入式技术 培训课件 第5章.ppt

  1. 1、本文档共141页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.6 ARM汇编语言语句格式 ARM汇编语言中的表达式----逻辑表达式 逻辑操作符 逻辑操作符用于进行两个逻辑表达式之间的基本逻辑操作. 语法格式如下: : LNOT :A 逻辑表达式A的值取反 A:LAND :B 逻辑表达式A和B的逻辑”与” A:LOR :B 逻辑表达式A和B的逻辑”或” A:LEOR :B 逻辑表达式A和B的逻辑”异或” 其中A和B是两个逻辑表达式 * 5.6 ARM汇编语言语句格式 ARM汇编语言中的表达式----其他操作符 (1)? 操作符的语法格式为 ? A 返回定义符号A的代码行所生成的可执行代码的字节数. (2)DEF DEF操作符判断某个符号是否已定义. 其语法格式及含义如下,其中A为一个符号. :DEF :A 如果符号A已经定义,则上述结果为{TURE};否则上述结果为{FALSE}. * 5.7 ARM汇编语言程序格式 以ADS编译器下汇编语言程序设计的格式为例,来说明ARM汇编语言程序的基本格式. ARM汇编语言是以段(Section)为单位来组织源文件的.段是相对独立的,具有特定名称,不可分割的指令或数据序列.段又可分为代码段和数据段;代码段存放执行代码;数据段存放运行时需要用到的数据,一个ARM源程序至少需要一个代码段,大的程序可包含多个代码段和数据段. * 5.7 ARM汇编语言程序格式 ARM汇编语言源程序经过汇编处理后生成一个可执行的映像文件,它通常包括下面3部分. ●一个或多个代码段,代码段通常是只读的. ●0或多个包含初始值的数据段,这些数据段通常是可读/写的 ●0或多个不包含初始值的数据段,这些数据段被初始化为0,通常是可读/写的. 链接器根据一定的规则将各个段安排到内存中的相应位置.源程序中段之间的相邻关系与执行的映像文件中段之间的相邻关系并不一定相同. * 5.7 ARM汇编语言程序格式 AREA EXAMPLE ,CODE,READONLY ENTRY start MOV R0,#10 MOV R1,#3 ADD R0,RO,R1 END 只读代码段 名称为EXAMPLE 伪操作AREA定义一个段, 表示了一个段的开始,同时定义了这 个段的名称及相关属性. 使用ENTRY为程序的入口点 END伪操作告诉汇编编译器源文件的结束 * 5.8 ARM汇编语言编程的重点 ARM数据处理操作 (1)简单的寄存器操作 ADD R0,R1,R2 ;R0?R1+R2 在编写汇编语言源代码时,必须注意操作数的正确顺序,第一个是结果寄存器,然后是第一操作数,最后是第二操作数.当这些指令执行时,对系统状态而言,惟一的变化是目的寄存器R0的值.当然,如果指定S,则CPSR中的标志位N、Z、C和V的值也会有选择地变化. * 5.8 ARM汇编语言编程的重点 ARM数据处理操作 (2) 立即数操作 ADD R0,R0,#1 ; R0?R0+1 ADD R0,R1,#FF ;R0?R1+0xFF 注意:由第一个例子可以说明,允许源和目的操作数使用同一个寄存器.虽然立即数是在32位指令字内编码,但不可能将所有可能的32位值作为有效立即数,有效立即数是由一个8位的立即数循环2n位得到. * 5.8 ARM汇编语言编程的重点 ARM数据处理操作 (3)寄存器移位操作 在ARM数据处理指令中,第2操作数还有一种特有的形式---- 寄存器移位操作,即允许第2个寄存器操作数在同第一操作数 运算之前完成移位操作. ADD R3,R2.R1.LSL #3 ;R3?R2+8XR1 注意:它是一条ARM指令,在一个时钟周期内执行.许多处理器采用独立的指令提供移位操作,但ARM将它们和基本的ALU操作合并在一个指令中. * 5.8 ARM汇编语言编程的重点 设置条件码 如果需要,ARM的任何数据处理指令都通过增加S操作码来设置条件码(N、Z、C和V).对于比较、测试指令操作,其主要作用就是设置条件码,因此可不用增加S操作码,但对所有其他数据处理指令必须通过增加S操作码来指明. 例如,下面代码完成2个数64位加法,一个数存于[R1,R0],另一个数存于[R3,R2],用C条件码标志位存立即数进位: ADDS R2,R2,R0;32位进位输出到C ADC R3,R3,R1;再加到高位字中 * 5.8 ARM汇编语言编程的重点 设置条件码 (1)条件执行 ARM指令集不同寻常的特性是每条指令(除了某些V5T)都可以是条件执行的.条件转移是绝大多数指令集的标准特征,但

文档评论(0)

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

1亿VIP精品文档

相关文档