资料介绍
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次下载
- LINUX系统教程之如何在Linux系统下进行编程 9次下载
- C语言入门教程之C语言编程实例源代码资料免费下载 35次下载
- C#入门教程之面向对象编程简介的详细资料概述 35次下载
- 单片机教程之如何进行单片机内部资源的C51编程 21次下载
- python基础教程之Python核心编程学习详细代码说明 28次下载
- 编程之美 0次下载
- 详解TIA Portal SCL编程语言中的IF语句 1.6k次阅读
- 技术干货驿站 ▏深入理解C语言:掌握C语言条件判断,从if到switch的应用 1.4k次阅读
- C语言编程的七大陷阱与高效避坑指南 1.3k次阅读
- plc编程语言与c语言的联系 c语言和PLC有什么区别 7k次阅读
- Go编程语言-你应该知道的一切 1.3k次阅读
- 什么是C语言?单片机有什么特点?为什么要用C语言编程? 3.2k次阅读
- C语言for循环的用法和注意事项 3.8k次阅读
- 编程语言的加载和执行过程 1.2k次阅读
- WHILE语句如何执行 1.5k次阅读
- 西门子博途SCL:WHILE:满足条件时执行 4.7k次阅读
- WHILE ...ENDWHILE:编程设定当型循环 .EXIT:离开循环,无条件退出循环. 4.3k次阅读
- 条件判断语句(if语句) 4.8k次阅读
- KUKA编程设定未满足的条件 2.1k次阅读
- 如何在ARM下实现高效C编程_10个关键点给你答案 4.3k次阅读
- pic单片机io口控制教程之c语言编程实现 1.2w次阅读
下载排行
本周
- 1MDD品牌三极管BC807数据手册
- 3.00 MB | 次下载 | 免费
- 2MDD品牌三极管BC817数据手册
- 2.51 MB | 次下载 | 免费
- 3MDD品牌三极管D882数据手册
- 3.49 MB | 次下载 | 免费
- 4MDD品牌三极管MMBT2222A数据手册
- 3.26 MB | 次下载 | 免费
- 5MDD品牌三极管MMBTA56数据手册
- 3.09 MB | 次下载 | 免费
- 6MDD品牌三极管MMBTA92数据手册
- 2.32 MB | 次下载 | 免费
- 7STM32G474 HRTIME PWM 丢波问题分析与解决
- 1.00 MB | 次下载 | 3 积分
- 8新能源电动汽车高压线束的铜铝连接解决方案
- 2.71 MB | 次下载 | 2 积分
本月
- 1爱华AIWA HS-J202维修手册
- 3.34 MB | 37次下载 | 免费
- 2PC5502负载均流控制电路数据手册
- 1.63 MB | 23次下载 | 免费
- 3NB-IoT芯片厂商的资料说明
- 0.31 MB | 22次下载 | 1 积分
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供电电路图资料
- 0.63 MB | 6次下载 | 1 积分
- 5UWB653Pro USB口测距通信定位模块规格书
- 838.47 KB | 5次下载 | 免费
- 6技嘉H110主板IT8628E_BX IO电路图资料
- 2.61 MB | 4次下载 | 1 积分
- 7苏泊尔DCL6907(即CHK-S007)单芯片电磁炉原理图资料
- 0.04 MB | 4次下载 | 1 积分
- 8苏泊尔DCL6909(即CHK-S009)单芯片电磁炉原理图资料
- 0.08 MB | 2次下载 | 1 积分
总榜
- 1matlab软件下载入口
- 未知 | 935137次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420064次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233089次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191439次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183353次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81602次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73822次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65991次下载 | 10 积分
电子发烧友App





创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论