資料介紹
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服务器综述25次下载
- Windows编程之数据类型综述5次下载
- Windows编程之变量与可变性详解8次下载
- Windows编程之变量和常量差异综述8次下载
- Windows编程之数值运算综述5次下载
- Windows编程之变量和可变性综述3次下载
- 西门子PLC教程之结构化编程的详细资料说明38次下载
- DSP设计与应用教程之汇编程序设计举例的资料说明19次下载
- C语言教程之C基础变量的技术总结11次下载
- LINUX系统教程之如何在Linux系统下进行编程9次下载
- C语言入门教程之C语言编程实例源代码资料免费下载35次下载
- C#入门教程之面向对象编程简介的详细资料概述35次下载
- 单片机教程之如何进行单片机内部资源的C51编程21次下载
- 编程之美0次下载
- 详解TIA Portal SCL编程语言中的IF语句419次阅读
- 技术干货驿站 ▏深入理解C语言:掌握C语言条件判断,从if到switch的应用809次阅读
- C语言编程的七大陷阱与高效避坑指南795次阅读
- plc编程语言与c语言的联系 c语言和PLC有什么区别5320次阅读
- Go编程语言-你应该知道的一切910次阅读
- 什么是C语言?单片机有什么特点?为什么要用C语言编程?2308次阅读
- C语言for循环的用法和注意事项3243次阅读
- 编程语言的加载和执行过程917次阅读
- WHILE语句如何执行1092次阅读
- 监控机器人运动的过程条件FB ONL/FB PSPS1320次阅读
- 西门子博途SCL:WHILE:满足条件时执行3659次阅读
- WHILE ...ENDWHILE:编程设定当型循环 .EXIT:离开循环,无条件退出循环.3430次阅读
- 条件判断语句(if语句)4087次阅读
- KUKA编程设定未满足的条件1474次阅读
- pic单片机io口控制教程之c语言编程实现12221次阅读
下載排行
本周
- 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次下載 | 免費
評論