1、College of Computer Science 简单的数据转换 ;求数据表达式; 特殊功能寄存器的设置等等 ;-E.g1. 开 /关中断E.g2. 拆字 /拼字程序E.g3. 求 S=W-(X*Y+Z-340)设 W、 X、 Y、 Z均为 32位带符号数。汇编程序设计程序结构鲁东大学 LUDONG UNIVERSITY顺序结构分支结构单分支结构双分支结构多分支结构循环结构子程序结构分支结构循环结构 Bcond Label :无条件 /条件转移 B Label :无条件跳转到标号处B Label;Label绕过 B指令到标号之间的代码 Bcond Label :满足 条件 跳转到标号处不
2、满足 条件,顺序执行Bcond Label;Label 满足条件跳到标号处不满足条件顺序执行汇编程序设计程序结构鲁东大学 LUDONG UNIVERSITY顺序结构分支结构单分支结构双分支结构多分支结构循环结构子程序结构分支结构if( 布尔表达式 )满足条件处理;if(op1 = op2) then X=1;Y=2;ldr r0, = op1ldr r1,r0ldr r0, = op2ldr r2,r0cmp r1,r2bne nextldr r0, = xmov r1,#1str r1,r0ldr r0, =ymov r1,#2str r1,r0 next 采用相反条件(与原来一样)的程序结
3、构?单分支结构ldr r0, = op1ldr r1,r0ldr r0, = op2ldr r2,r0cmp r1,r2beq case_dob case_not_do case_doldr r0, = xmov r1,#1str r1,r0ldr r0, =ymov r1,#2str r1,r0 case_not_do汇编程序设计程序结构鲁东大学 LUDONG UNIVERSITY顺序结构分支结构单分支结构双分支结构多分支结构循环结构子程序结构分支结构if( 布尔表达式 ) 满足条件处理 ;else 不满足条件的处理 ;if(op1 op2) then routin1; Else routi
4、n2; ;将 op1取至 r1,op2取至 r2 cmp r1,r2ble routin2routin1;b exitroutin2;exit双分支结构注意:使用无条件转移,绕过另一个分支,跳出条件结构汇编程序设计程序结构鲁东大学 LUDONG UNIVERSITY顺序结构分支结构单分支结构双分支结构多分支结构循环结构子程序结构分支结构if( 满足条件 1)if(满足条件 2)满足条件 1多分支结构分支 1分支 2分支 31、高级语言 嵌套 if-else ,实现多分支if(op1 op2)if(xy) routin1; else routin2; else routin3; 汇编程序设计程序
5、结构鲁东大学 LUDONG UNIVERSITY顺序结构分支结构单分支结构双分支结构多分支结构循环结构子程序结构分支结构swtich(条件表达式 ) case 常量 1:proc1;case 常量 2:proc2:case 常量 3: proc3:;多分支结构分支 1分支 2分支 32、高级语言 switch-case,实现多分支利用地址表实现多分支汇编程序设计程序结构鲁东大学 LUDONG UNIVERSITY顺序结构分支结构单分支结构双分支结构多分支结构循环结构子程序结构分支结构多分支结构 利用地址表实现多分支地址表 实现多分支结构,需要 定义一块专门存放各分支入口地址的区域 ,程序中通过
6、利用条件变量找到对应的地址表单元,取出对应子程序的入口地址赋给 PC,达到多分支转移的效果ADD入口地址地址表表首偏移量Example鲁东大学 LUDONG UNIVERSITY循环结构程序设计循环结构程序的组成初始化部分 循环体 参数修改部分 循环控制部分计数器地址指针寄存器存储单元计数器地址指针状态位为进入下一次循环做准备B条件各异初始化循环体参数修改循环控制DO_until初始化循环体参数修改循环控制While_do汇编程序设计程序结构鲁东大学 LUDONG UNIVERSITY顺序结构分支结构单分支结构双分支结构多分支结构循环结构子程序结构循环结构sum = 0;for(i =0; iNum;i+)sum = sum+i;;假设 sum 存放在寄存器 r1中;假设计数器 i存在放寄存器 r0中; mov r1,#0mov r0,#Num-1loopadd r1,r1,r0subs r0,r0,#1bne loopexit