3ARM汇编语言程序设计规范7..ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3ARM汇编语言程序设计规范7..ppt

求一个数的阶乘(64位结果) MOV R8 , #20 @低32位初始化为20 MOV R9 , #0 @高位初始化为0 SUB R0,R8,#1 @初始化计数器 Loop: MOV R1 , R9 @暂存高位值 UMULL R8 , R9 , R0 , R8 @[R9:R8]=R0*R8 MLA R9 , R1 , R0 , R9 @R9=R1*R0+R9 SUBS R0 , R0 , #1 @计数器递减 BNE Loop @计数器不为0继续循环 先对内存地址0x3000开始的100个字内存单元填入00数据,然后将每个字单元进行64位累加结果保存于[R9:R8]。(R9中存放高32位) _start: MOV R0 , #0X3000 @初始化寄存器 MOV R1 , #0 MOV R2 , #100 loop_1: @第一次循环赋值 STR R1 , [R0],#4 ADD R1 , R1,#1 SUBS R2 , R2,#1 BNE loop_1 MOV R0 , #0X3000 MOV R2 , #100 MOV R9 , #0 MOV R8 , #0 loop_2: @第二次循环累加 LDR R1 , [R0],#4 ADDS R8 , R1,R8@R8=R8+R1,进位影响标志位 ADC R9 , R9 , #0@R9=R9+C,C为进位 SUBS R2 , R2 , #1 BNE loop_2 在ARM集成开发环境下编程: AREA Fctrl, CODE, READONLY ; 声明代码Fctrl ENTRY ; 标识程序入口 CODE32 ; 声明32 位ARM 指令 …… Stop B Stop END ;文件结束 其余实例分请参阅教材《ARM嵌入式系统结构与编程》 7.4节 第7章 汇编语言程序设计 The End * TM * * TM 配套教材: 《ARM嵌入式系统结构与编程》,第2版 邱铁 编著,清华大学出版社,2013.8 E_mail:openembed@ ARM嵌入式系统结构与编程 第7章 汇编语言程序设计 本章主要介绍ARM汇编语言程序设计规范,以及在汇编语言程序设计中所要注意的问题,最后以大量的实例说明汇编语言程序设计方法。 内容提要 7.1 ARM编译环境下汇编语句 7.2 GNU环境下汇编语句与编译说明 7.3 ARM汇编语言程序设计规范 7.4 ARM汇编语言程序设计实例解析 7.1 ARM编译环境下汇编语句 ARM编译环境下进行汇编语言程序设计的格式 汇编语句中的符号规则 ARM编译环境下汇编语句格式 ADS环境下ARM汇编语句格式如下: {symbol} {instruction} {;comment} {symbol} {directive} {;comment} {symbol}{ pseudo-instruction} {;comment} ARM编译环境下汇编语句中符号规则 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中的转义字符。 如果需要使用双引号”或字符$,则必须用””和$$代替。 3.变量 (1)数字变量 (2)字符串变量 (3)逻辑变量 具体说明参考教材《ARM嵌入式系统结构与编程》第153页的说明 4.字符串表达式操作 (1)取符串的长度LEN 语法格式: :LEN: A 功能说明:返回字符串A的长度。 (2)CHR 语法格式: :CHR: A 功能说明:将A(A为某一字符的ASCII值)转换为单个字符。 (3)STR 语法格式: :STR: A 功能说明:将A(A为数字量或逻辑表达式)转换成字符串。 (4)LEFT 语法格式: A :LEFT: B 功能说明:返回字符串A最左端B(B为返回长度)长度的字符串。 (5)RIGHT 返回一个字符串最右

文档评论(0)

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

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

1亿VIP精品文档

相关文档