单片机嵌入式系统原理及应用 教学课件 作者 贾好来 ch12.pptVIP

单片机嵌入式系统原理及应用 教学课件 作者 贾好来 ch12.ppt

  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文档。上传文档
查看更多
表达式是由符号、数值、单目或多目操作符以及括号组成的。 字符串表达式 字符串表达式由字符串、字符串变量、操作符以及括号组成; 数字表达式 数字表达式由数字常量、数字变量、操作符和括号组成; 基于寄存器和基于PC的表达式 基于寄存器的表达式表示了某个寄存器的值加上(或减去)一个数字静态式,基于PC的表达式表示了PC寄存器的值加上(或减去)一个数字表达式; 逻辑表达式 逻辑表达式由逻辑量、逻辑操作符、关系操作符以及括号组成; 其他的一些操作符。 12.4.3 ARM汇编语言表达式 * ARM汇编程序除了使用ARM汇编指令外,还大量使用各种伪指令。ARM汇编程序采用分段式设计,以程序段为单位组织代码。段是相对独立、不可分割的指令或数据序列,具有特定的名称。段分为代码段和数据段,代码段的内容为可执行代码,数据段存放代码运行时所而用到的数据。 一个汇编程序至少应该有一个代码段。当程序比较长时,可以分割成多个代码段和数据段,多个段在程序编译连接时最终形成一个可执行的映像文件。可执行的映像文件通常由以下几部分构成: 一个或多个代码段 代码段的属性为只读; 零个或多个包含初始化数据的数据段 数据段的属性为可读写; 零个或多个不包含初始化数据的数据段 数据段的属性为可读写。 12.4.4 ARM汇编程序结构 * ARM汇编语言可实现顺序结构、分支结构、循环结构等3大程序控制结构及子程序调用与返回。 1. 顺序结构 顺序结构是程序设计中最简单也是最基本的一种控制结构,按照解决问题的顺序写出相应的语句,它的执行是自上而下,依次执行。ARM是32位处理器,一次只能完成两个32位数据之间的运算。若要实现两个64位数相加,关键在于首先完成两个数的低32位相加并保存进位,再完成两个数的高32位及低32位加法进位之间的加法,即得到最终的64位加法运算结果。 12.4.5 ARM汇编程序结构设计 * 例12-1 实现两个64位数相加的汇编程序。 12.4.5 ARM汇编程序结构设计 * 12.4.5 ARM汇编程序结构设计 AREA add64, CODE, READONLY ENTRY start LDR R0, =data1 ;R0中保存data1的首地址 LDR R1, [R0] ;用寄存器间接寻址方式读数据1到高32位到R1 LDR R2, [R0, #4] ;用寄存器间接寻址方式读数据1的低32位到R2 LDR R0, =data2 ;R0中保存data2的首地址 LDR R3, [R0] ;用寄存器间接寻址方式读数据2到高32位到R3 LDR ADDS ADC R4, [R0, #4] R6, R2, R4 R5, R1, R3 ;用寄存器间接寻址方式读数据2的低32位到R4 ;低32位相加,并影响标志位,保存进位 ;高32位相加,并使用标示位C STR STR data1 data2 result R0, [R0] R6, [R0,#R] DCD 0 0Xffddccbb DCD 0 0Xffddccbb DCD 0, 0 END * 2.分支结构 顺序结构的程序虽然能解决计算、输出等问题,但不能先判断再选择。对于要先判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要绘制其算法流程图,然后根据程序流程写出源程序,这样就能把程序设计分析与语言分开,使得问题简单化,易于理解。 * 例12-2 实现两个数的比较,并保存较大数 。 AREA add64, CODE, READONLY ENTRY start LDR R0, data1 ;R0中保存data1 save LDR R1, data2 ;R1中保存data2 CMP R0, R1 ;比较R1和R0中的值的大小 BHI save ;R0R1则跳转到标号为save处 MOV R0, R1 ;将R1的值赋给R0 STR R0, result ;将结果保存到result data1 data2 result DCD 0x100 DC

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档