- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
表达式是由符号、数值、单目或多目操作符以及括号组成的。 字符串表达式 字符串表达式由字符串、字符串变量、操作符以及括号组成; 数字表达式 数字表达式由数字常量、数字变量、操作符和括号组成; 基于寄存器和基于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
您可能关注的文档
- 陵园日常养护与管理.ppt
- 陶瓷材料介绍[1]-副本.ppt
- 隆中对复习课件.ppt
- 隆中对优质课件.ppt
- 陶瓷的种类介绍-MAXZHOU.ppt
- 隆昌一中高2016届1班期末考试PPT.ppt
- 陶瓷材料在LED照明灯具上的应用.ppt
- 隆兴九年制学校团课培训PPT.ppt
- 隔离器材原理讲解.ppt
- 陶瓷原料及配方基础.ppt
- 2025浙江温州市公用事业发展集团有限公司面向高校招聘工作人考前自测高频考点模拟试题最新.docx
- 2025年蓬安县财政局下属单位招聘备考题库附答案.docx
- 广安市农业农村局2025年公开遴选市动物卫生监督所工作人员备考题库附答案.docx
- 南昌市劳动保障事务代理中心招聘3名劳务派遣驾驶员参考题库附答案.docx
- 2025浙江绍兴市新昌县机关事业单位招用编外聘用人员36人备考题库最新.docx
- 浙江国企招聘-2025嘉兴海盐县城市投资集团有限公司招聘7人笔试备考试题附答案.docx
- 长沙银行2026校园招聘备考题库最新.docx
- 2026年度中国地震局事业单位公开招聘备考题库附答案.docx
- 2025福建省晋江圳源环境科技有限责任公司招聘6人模拟试卷附答案.docx
- 浙江国企招聘-2025温州平阳县城发集团下属房开公司招聘5人公笔试备考试题附答案.docx
原创力文档


文档评论(0)