第三章ARM汇编编程PPT课件_第1页
第三章ARM汇编编程PPT课件_第2页
第三章ARM汇编编程PPT课件_第3页
第三章ARM汇编编程PPT课件_第4页
第三章ARM汇编编程PPT课件_第5页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、College of Computer Science & Technology第三章第三章 ARM汇编编程汇编编程汇编程序设计汇编程序设计程序结构程序结构 鲁东大学鲁东大学 LUDONG UNIVERSITY顺序结构顺序结构分支结构分支结构 单分支结构单分支结构 双分支结构双分支结构 多分支结构多分支结构循环结构循环结构子程序结构子程序结构顺序结构顺序结构顺序处理顺序处理; ;简单的数据转换简单的数据转换; ;求数据表达式;求数据表达式; 特殊功能寄存器的设置等等特殊功能寄存器的设置等等; ;-E.g1. E.g1. 开开/ /关中断关中断E.g2. E.g2. 拆字拆字/ /拼字程

2、序拼字程序E.g3. E.g3. 求求S=W-(XS=W-(X* *Y+Z-340)Y+Z-340)设设WW、X X、Y Y、Z Z均为均为3232位带符号数。位带符号数。汇编程序设计汇编程序设计程序结构程序结构 鲁东大学鲁东大学 LUDONG UNIVERSITY顺序结构顺序结构分支结构分支结构 单分支结构单分支结构 双分支结构双分支结构 多分支结构多分支结构循环结构循环结构子程序结构子程序结构分支结构分支结构循环结构循环结构 BBcondcond Label : Label :无条件无条件/ /条件转移条件转移 B Label :B Label :无条件跳转到标号处无条件跳转到标号处 B

3、LabelB Label ; ;LabelLabel绕过B指令到标号之间的代码 B Bcondcond Label : Label :满足满足条件条件跳转到标号处跳转到标号处 不满足不满足条件,顺序执行条件,顺序执行 B Bcondcond Label Label ; ;LabelLabel满足条件跳到标号处不满足条件顺序执行汇编程序设计汇编程序设计程序结构程序结构 鲁东大学鲁东大学 LUDONG UNIVERSITY顺序结构顺序结构分支结构分支结构 单分支结构单分支结构 双分支结构双分支结构 多分支结构多分支结构循环结构循环结构子程序结构子程序结构分支结构分支结构if( if( 布尔表达式布

4、尔表达式) ) 满足条件处理;满足条件处理; if(op1 = op2) then X=1; Y=2; ldr r0, = op1 ldr r1,r0 ldr r0, = op2 ldr r2,r0 cmp r1,r2 bne next ldr r0, = x mov r1,#1 str r1,r0 ldr r0, =y mov r1,#2 str r1,r0 next 采用相反条件采用相反条件(与原来一样)(与原来一样)的程序结构?的程序结构? 单分支结构单分支结构 ldr r0, = op1 ldr r1,r0 ldr r0, = op2 ldr r2,r0 cmp r1,r2 beq c

5、ase_do b case_not_do case_do ldr r0, = x mov r1,#1 str r1,r0 ldr r0, =y mov r1,#2 str r1,r0 case_not_do 汇编程序设计汇编程序设计程序结构程序结构 鲁东大学鲁东大学 LUDONG UNIVERSITY顺序结构顺序结构分支结构分支结构 单分支结构单分支结构 双分支结构双分支结构 多分支结构多分支结构循环结构循环结构子程序结构子程序结构分支结构分支结构if( if( 布尔表达式布尔表达式) ) 满足条件处理满足条件处理; ;elseelse 不满足条件的处理不满足条件的处理; ;if(op1 op

6、2) then routin1; Else routin2; ;将将op1取至取至r1,op2取至取至r2 cmp r1,r2 ble routin2 routin1 ; b exit routin2 ;exit 双分支结构双分支结构注意:使用无条件转移,注意:使用无条件转移,绕过另一个分支,跳出绕过另一个分支,跳出条件结构条件结构汇编程序设计汇编程序设计程序结构程序结构 鲁东大学鲁东大学 LUDONG UNIVERSITY顺序结构顺序结构分支结构分支结构 单分支结构单分支结构 双分支结构双分支结构 多分支结构多分支结构循环结构循环结构子程序结构子程序结构分支结构分支结构if( if( 满足条

7、件满足条件1) 1) if(if(满足条件满足条件2) 2) 满足条件满足条件1&1&条件条件2 2的分支处理的分支处理 elseelse 满足条件满足条件1&!1&!条件条件2 2的分支处理的分支处理 elseelse 不满足条件不满足条件1 1的分支处理的分支处理; ; 多分支结构多分支结构分支1分支2分支31、高级语言 嵌套if-else ,实现多分支if(op1 op2) if(xy) routin1; else routin2; else routin3; 汇编程序设计汇编程序设计程序结构程序结构 鲁东大学鲁东大学 LUDONG UNIVERSITY顺

8、序结构顺序结构分支结构分支结构 单分支结构单分支结构 双分支结构双分支结构 多分支结构多分支结构循环结构循环结构子程序结构子程序结构分支结构分支结构swtichswtich( (条件表达式条件表达式 ) ) case case 常量常量1 1: proc1;proc1; case case 常量常量2 2: proc2:proc2: case case 常量常量3 3: proc3:proc3: ; ; 多分支结构多分支结构分支1分支2分支32、高级语言 switch-case,实现多分支利用地址表利用地址表实现多分支实现多分支汇编程序设计汇编程序设计程序结构程序结构 鲁东大学鲁东大学 LUD

9、ONG UNIVERSITY顺序结构顺序结构分支结构分支结构 单分支结构单分支结构 双分支结构双分支结构 多分支结构多分支结构循环结构循环结构子程序结构子程序结构分支结构分支结构 多分支结构多分支结构 利用地址表实现多分支利用地址表实现多分支地址表实现多分支结构,需要定义一块专门存放各分支入口地址的区域,程序中通过利用条件变量找到对应的地址表单元,取出对应子程序的入口地址赋给PC,达到多分支转移的效果ADDADD入入口地址口地址SUBSUB入入口地址口地址MULMUL入入口地址口地址DIVDIV入入口地址口地址地址表表首地址表表首偏移量偏移量Example 鲁东大学鲁东大学 LUDONG UN

10、IVERSITYLUDONG UNIVERSITY循环结构程序设计循环结构程序设计循环结构程序的组成循环结构程序的组成初始化部分初始化部分循环体循环体参数修改部分参数修改部分循环控制部分循环控制部分计数器计数器地址指针地址指针寄存器寄存器存储单元存储单元计数器计数器 地址指针地址指针状态位状态位为进入下一次循环为进入下一次循环做准备做准备 B B条件条件各异各异初始化初始化循环体循环体参数修改参数修改循环控制循环控制DO_untilDO_until初始化初始化循环体循环体参数修改参数修改循环控制循环控制While_doWhile_do汇编程序设计汇编程序设计程序结构程序结构 鲁东大学鲁东大学 LUDONG UNIVERSITY顺序结构顺序结构分支结构分支结构 单分支结构单分支结构 双分支结构双分支结构 多分支结构多分支结构循环结构循环结构子程序结构子程序结构 循环结构循环结构sum = 0;for(i =0; ib) a = a-b; else b = b-a;;假设;假设a a 和和 b b存放在寄存器存放在寄存器r1r1和和r2r2 loop cmp r1,r2 beq exit bgt case1case2 sub r2,r2,r1 b loopcase1 sub r1,r1,r2 b loopexit ;假设;假设a a 和和 b b存放在寄存器存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论