资料介绍
4.3 条件执行
ARM指令都是可以条件执行的。在代码中使用条件执行指令可以减小代码密度并提高程序执行效率。典型的条件执行语句用在比较指令之后,形成程序的分支跳转结构。下面的例子显示了条件执行指令的典型用法。
CMP x, #0
MOVGE y, #1
MOVLT y, #0
但当代码中连续的条件执行指令超过4条时,就会影响程序的执行速度。所以编译器在编译程序时,限制条件指令连续出现的次数。
ARM编译器常把C语言中的if…else结构编译成条件执行指令,但子程序调用一般是不能条件执行的。所以在编程时尽可以地使用简单的if…else结构完成程序的分支操作,而避免使用过多的子程序调用。
下面的例子显示了编译器如何利用ARM指令的条件执行。
int g(int a, int b, int c, int d)
{ if (a 》 0 && b 》 0 && c 《 0 && d 《 0) /* 程序分组条件 */
return a + b + c + d;
return -1;
}
g
CMP a1,#0
CMPGT a2,#0
BLE |L000024.J4.g|
CMP a3,#0
CMPLT a4,#0
ADDLT a1,a1,a2
ADDLT a1,a1,a3
ADDLT a1,a1,a4
MOVLT pc,lr
|L000024.J4.g|
MVN a1,#0
MOV pc,lr
ARM指令都是可以条件执行的。在代码中使用条件执行指令可以减小代码密度并提高程序执行效率。典型的条件执行语句用在比较指令之后,形成程序的分支跳转结构。下面的例子显示了条件执行指令的典型用法。
CMP x, #0
MOVGE y, #1
MOVLT y, #0
但当代码中连续的条件执行指令超过4条时,就会影响程序的执行速度。所以编译器在编译程序时,限制条件指令连续出现的次数。
ARM编译器常把C语言中的if…else结构编译成条件执行指令,但子程序调用一般是不能条件执行的。所以在编程时尽可以地使用简单的if…else结构完成程序的分支操作,而避免使用过多的子程序调用。
下面的例子显示了编译器如何利用ARM指令的条件执行。
int g(int a, int b, int c, int d)
{ if (a 》 0 && b 》 0 && c 《 0 && d 《 0) /* 程序分组条件 */
return a + b + c + d;
return -1;
}
g
CMP a1,#0
CMPGT a2,#0
BLE |L000024.J4.g|
CMP a3,#0
CMPLT a4,#0
ADDLT a1,a1,a2
ADDLT a1,a1,a3
ADDLT a1,a1,a4
MOVLT pc,lr
|L000024.J4.g|
MVN a1,#0
MOV pc,lr
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- C和C++实物精选《C专家编程》 0次下载
- LabViEW编程之VI服务器综述 20次下载
- Windows编程之数据类型综述 5次下载
- Windows编程之变量与可变性详解 8次下载
- Windows编程之变量和常量差异综述 8次下载
- Windows编程之数值运算综述 5次下载
- Windows编程之变量和可变性综述 3次下载
- 西门子PLC教程之结构化编程的详细资料说明 37次下载
- DSP设计与应用教程之汇编程序设计举例的资料说明 19次下载
- C语言教程之C基础变量的技术总结 11次下载
- LINUX系统教程之如何在Linux系统下进行编程 9次下载
- C语言入门教程之C语言编程实例源代码资料免费下载 31次下载
- C#入门教程之面向对象编程简介的详细资料概述 35次下载
- 单片机教程之如何进行单片机内部资源的C51编程 21次下载
- 编程之美 0次下载
- C语言编程的七大陷阱与高效避坑指南 393次阅读
- plc编程语言与c语言的联系 c语言和PLC有什么区别 3041次阅读
- Go编程语言-你应该知道的一切 482次阅读
- 什么是C语言?单片机有什么特点?为什么要用C语言编程? 1266次阅读
- C语言for循环的用法和注意事项 1641次阅读
- 编程语言的加载和执行过程 514次阅读
- WHILE语句如何执行 702次阅读
- 监控机器人运动的过程条件FB ONL/FB PSPS 914次阅读
- 西门子博途SCL:WHILE:满足条件时执行 2545次阅读
- WHILE ...ENDWHILE:编程设定当型循环 .EXIT:离开循环,无条件退出循环. 2205次阅读
- 条件判断语句(if语句) 3047次阅读
- KUKA编程设定未满足的条件 1059次阅读
- C语言中条件编译详解 2885次阅读
- 如何在ARM下实现高效C编程_10个关键点给你答案 3795次阅读
- pic单片机io口控制教程之c语言编程实现 1.1w次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1490次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 92次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 10次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7蓝牙设备在嵌入式领域的广泛应用
- 0.63 MB | 3次下载 | 免费
- 89天练会电子电路识图
- 5.91 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多