ARM课件第7章 汇编语言程序设计.pptVIP

  1. 1、本文档共46页,可阅读全部内容。
  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文档。上传文档
查看更多

copy4words LDMIAR2!,RegList STMIAR3!,RegList SUBSR1,R1,#1 BNEcopy4wordscopyWords ANDSR0,R0,#3 BEQstopcopyWord LDRR4,[R2],#4 STRR4,[R3],#4 SUBSR0,R0,#1 BNEcopyWordstop Bstop END7.4ARM汇编语言程序设计实例解析 例7-4初始化ARM处理器各模式下的堆栈指针SP(R13)。设计思路:通过MRS/MSR指令,采用“读取-修改-写回”三个步骤修改CPSR模式控制字,使处理器进入相应的模式,在各模式下修改其堆栈指针。7.4ARM汇编语言程序设计实例解析 如何设置相应模式下的SP MRS R0,CPSR ;读取当前CPSR BIC R0,R0,#0x1F ;清除模式位 ORR R1,R0,#0x1B ;未定义模式控制字 MSR CPSR_c,R1 LDR SP,=0xC7FF2007.4ARM汇编语言程序设计实例解析 *TM*ARM嵌入式系统结构与编程*TMARM嵌入式系统结构与编程第7章 汇编语言程序设计本章主要介绍ARM汇编语言程序设计规范,以及在汇编语言程序设计中所要注意的问题,最后以大量的实例说明汇编语言程序设计方法。内容提要7.1 ARM编译环境下汇编语句7.2 GNU环境下汇编语句与编译说明7.3 ARM汇编语言程序设计规范7.4 ARM汇编语言程序设计实例解析 7.1ARM编译环境下汇编语句ARM编译环境下进行汇编语言程序设计的格式汇编语句中的符号规则7.1.1ARM编译环境下汇编语句格式ADS环境下ARM汇编语句格式如下:{symbol}{instruction} {;comment}{symbol}{directive} {;comment}{symbol}{pseudo-instruction} {;comment}注意事项:在ARM编译环境下ARM汇编语句不能从一行的顶格书写,在一行语句中,指令的前面必须有空格或TAB符号。7.1.2ARM编译环境下汇编语句中符号规则符号用来表示地址(一般为程序标号)、常量和变量。当标号以数字开头时称为局部标号,只在当前段有效。1.符号命名规则(1)符号由大小写字母、数字、下划线组成,且符号是区分大小写的。(2)局部标号可以用数字开头,其他的标号不能。(3)符号在其作用范围内必须是唯一的。(4)程序中的符号不要与指令助记符或者伪操作同名。2.常量:包括数字常量、字符常量、字符串常量和布尔常量(1)十进制数,如535、246。(2)十六进制数,如0x645、0xff00。(3)n_XXX,n表示n进制数,从2~9,XXX是具体的数字。例如:8_3777(4)字符常量用一对单引号括起来,包括一个单字符或者标准C中的转义字符。例如‘A’、‘\n’。(5)字符串常量由一对双引号以及由它括住的一组字符串组成,包括标准C中的转义字符。 如果需要使用双引号”或字符$,则必须用””和$$代替。(6)布尔常量在表达式中写为{TRUE}和{FALSE}7.1.2ARM编译环境下汇编语句中符号规则3.变量(1)数字变量 取值范围为0~232-1或-231~231-1;汇编器对关系运算符采用无符号数方式处理,这意味着0-1是{FALSE}。(2)字符串变量 字符串变量由包含在双引号内的一系列字符组成,最大长度为512字节,最小长度为0。当字符串中包含$(或”)时,用$$(或””)表示一个$(或”)。(3)逻辑变量 取值范围为{TRUE}和{FALSE}7.1.2ARM编译环境下汇编语句中符号规则3.变量变量代换规则:程序中的变量可通过代换操作取得一个常量对于数字变量,如果该变量前有$字符,在汇编器编译时将该数字变量的数字转换成十六进制的串,然后用该十六进制串取代$字符后的变量。对于逻辑变量,如果该变量前有$字符,在汇编器编译时将该逻辑变量替换成它的取值(T或F)。使用“.”来表示变量名的结束。7.1.2ARM编译环境下汇编语句中符号规则3.变量例:变量代换 GBLSstring1 GBLSstring2 GBLSD GBLANUM GBLLISIS SETL{TRUE} NUM SETA0D SETSARM9TD

文档评论(0)

趁早学习 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档