ARM汇编语言程序设计.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文档。上传文档
查看更多
嵌入式系统设计与开发ARM汇编语言程序设计 ARM汇编语言程序设计1.1ARM汇编中的文件格式1.2ARM汇编语句格式1.3ARM汇编程序设计1.4ARM与Thumb之间的状态转换及函数的互相调用 ARM汇编语言程序设计1.1 ARM汇编中的文件格式 ARM源文件可由任意一种文本编辑器来编写程序代码,一般为文本格式。源文件可简单分为以下几种,不同种类的文件有不同的后缀名,见表4.1源程序文件文件名说明汇编程序文件*.S用ARM汇编语言编写的ARM程序C程序文件*.c用c语言编写的程序代码头文件*.h为了简化源程序,把常量名、宏定义等单独放在一个文件中,一般称为头文件。1.2ARM汇编语句格式 ARM汇编语言中,所有标号必须在一行的顶格书写,其后面不添加“:”,而所有的指令均不能顶格书写。ARM汇编器对标识符大小写敏感,书写标号及指令时字母大小写要一致,在ARM汇编程序中,一个ARM指令、伪指令、寄存器名可以全部为大写字母,也可以全部为小写字母,但不要大小写混合使用。注释使用“;” 。 汇编语句格式: [标号], 指令[条件][S]操作数[;注释]1.汇编语言中的符号 在ARM汇编语言中,符号可以代表地址、变量、数字常量。当符号代表地址时又称为标号,符号就是变量的变量名、数字常量的名称和标号,符号的命名规则如下:符号由大小写字母、数字以及下划线组成。除局部标号以数字开头外,其他的符号不能以数字开头。符号区分大小写,并且所有字符都是有意义的。符号在其作用域范围内必须是唯一的。符号不能与系统内部或系统预定义的符号同名。符号不能与指令助记符、伪指令同名。(1)变量 在ARM汇编语言中,变量有数字变量、逻辑变量和串变量3种类型。变量的类型在程序中是不能改变的。 (2)数字常量 数字常量一般有3种表示方式:十进制数、十六进制数和n进制数。(3)标号 在ARM汇编语言中,标号代表一个地址,段内标号的地址在汇编时确定,而段外标号的地址在连接时确定。根据生成的方式,标号有以下3种: 1)基于PC的标号。2)基于寄存器的标号。3)绝对地址2. 汇编语言中的表达式 表达式是有符号、数值、单目或多目操作符以及括号组成的。在一个表达式中各种元素的优先级如下:括号内的表达式优先级最高。各种操作符有一定的优先级。相邻的单目操作符的执行顺序为由右到左,单目操作符优先级高于其他操作符。优先级相同的双目操作符执行顺序为由左到右。(1)字符串表达式 字符串表达式由字符串、字符串变量、操作符以及符号组成。1)字符串由包含在双引号内的一系列字符组成。2)字符串变量用伪操作GBLS或者LCLS声明,用SETS敷值。3)操作符包括:LEN 、 CHR 、 STR 、 L EFT 、 RIGHTCC等(2) 数字表达式 数字表达式由数字常量、数字变量、操作符和括号组成。1)整数数字量。有以下几种格式:十进制数。十六进制数。n 进制数,形式为 n_base-n-digits。2)浮点数字量。有以下几种格式:{–}digits E {–}digits 。{–}{digits}. digits {E {–}digits} 。以0x或开头的十六进制数。其中digits为十进制的数字。3) 数字变量。数字变量用伪操作GBLA或LCLA声明,用SETA赋值。与数字表达式相关的操作符有:NOT 按位取反。+、-、×、/及MOD算术操作符。ROL、ROR、SHL及SHR移位。AND、OR及EOR按位逻辑操作符。(3)基于寄存器和基于PC的表达式 基于寄存器的表达式表示某个寄存器的值加上(或减去)一个数字表达式。基于PC的表达式表示PC寄存器的值加上(或减去)一个数字表达式。(4)逻辑表达式逻辑表达式由逻辑量、逻辑操作符、关系操作符以及括号组成。1)关系操作符。关系操作符用于表示两个同类表达式之间的关系。2)逻辑操作符。逻辑操作符用于进行两个逻辑表达式之间的基本逻辑操作。逻辑与:A : LAND : B逻辑或:A : LOR : B异或:A : LEOR : B3.汇编语言程序格式(以CodeWarrior编译器下汇编语言程序设计的格式为例)ARM汇编语言以段(section)为单位来组织源文件。ARM汇编语言源程序经过汇编处理后生成一个可执行的映像文件,它包含下面3部分:① 一个或多个代码段,代码段通常是只读的。② 0或多个包含初始值的数据段。这些数据段通常是可读/写的。③ 0或多个不包含初始值的数据段。这些数据段被初始化为0,通常是可读/写的。链接器根据一定的规则将各个段安排到内存中的相应位置。在ARM汇编语言源程序中,使用伪操作AREA定义一个段。 AREA伪操作表示一个段的开始,同时定义了这个段的名称和相关属性。ENTRY伪操作标识了程序执行的第一条指令,即程序的入口点。一个A

文档评论(0)

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

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

1亿VIP精品文档

相关文档