資料介紹
4.3 條件執(zhí)行
ARM指令都是可以條件執(zhí)行的。在代碼中使用條件執(zhí)行指令可以減小代碼密度并提高程序執(zhí)行效率。典型的條件執(zhí)行語句用在比較指令之后,形成程序的分支跳轉(zhuǎn)結(jié)構(gòu)。下面的例子顯示了條件執(zhí)行指令的典型用法。
CMP x, #0
MOVGE y, #1
MOVLT y, #0
但當(dāng)代碼中連續(xù)的條件執(zhí)行指令超過4條時(shí),就會(huì)影響程序的執(zhí)行速度。所以編譯器在編譯程序時(shí),限制條件指令連續(xù)出現(xiàn)的次數(shù)。
ARM編譯器常把C語言中的if…else結(jié)構(gòu)編譯成條件執(zhí)行指令,但子程序調(diào)用一般是不能條件執(zhí)行的。所以在編程時(shí)盡可以地使用簡單的if…else結(jié)構(gòu)完成程序的分支操作,而避免使用過多的子程序調(diào)用。
下面的例子顯示了編譯器如何利用ARM指令的條件執(zhí)行。
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指令都是可以條件執(zhí)行的。在代碼中使用條件執(zhí)行指令可以減小代碼密度并提高程序執(zhí)行效率。典型的條件執(zhí)行語句用在比較指令之后,形成程序的分支跳轉(zhuǎn)結(jié)構(gòu)。下面的例子顯示了條件執(zhí)行指令的典型用法。
CMP x, #0
MOVGE y, #1
MOVLT y, #0
但當(dāng)代碼中連續(xù)的條件執(zhí)行指令超過4條時(shí),就會(huì)影響程序的執(zhí)行速度。所以編譯器在編譯程序時(shí),限制條件指令連續(xù)出現(xiàn)的次數(shù)。
ARM編譯器常把C語言中的if…else結(jié)構(gòu)編譯成條件執(zhí)行指令,但子程序調(diào)用一般是不能條件執(zhí)行的。所以在編程時(shí)盡可以地使用簡單的if…else結(jié)構(gòu)完成程序的分支操作,而避免使用過多的子程序調(diào)用。
下面的例子顯示了編譯器如何利用ARM指令的條件執(zhí)行。
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++實(shí)物精選《C專家編程》 0次下載
- LabViEW編程之VI服務(wù)器綜述 20次下載
- Windows編程之數(shù)據(jù)類型綜述 5次下載
- Windows編程之變量與可變性詳解 8次下載
- Windows編程之變量和常量差異綜述 8次下載
- Windows編程之數(shù)值運(yùn)算綜述 5次下載
- Windows編程之變量和可變性綜述 3次下載
- 西門子PLC教程之結(jié)構(gòu)化編程的詳細(xì)資料說明 37次下載
- DSP設(shè)計(jì)與應(yīng)用教程之匯編程序設(shè)計(jì)舉例的資料說明 19次下載
- C語言教程之C基礎(chǔ)變量的技術(shù)總結(jié) 11次下載
- LINUX系統(tǒng)教程之如何在Linux系統(tǒng)下進(jìn)行編程 9次下載
- C語言入門教程之C語言編程實(shí)例源代碼資料免費(fèi)下載 31次下載
- C#入門教程之面向?qū)ο?b class="flag-6" style="color: red">編程簡介的詳細(xì)資料概述 35次下載
- 單片機(jī)教程之如何進(jìn)行單片機(jī)內(nèi)部資源的C51編程 21次下載
- 編程之美 0次下載
- C語言編程的七大陷阱與高效避坑指南 393次閱讀
- plc編程語言與c語言的聯(lián)系 c語言和PLC有什么區(qū)別 3041次閱讀
- Go編程語言-你應(yīng)該知道的一切 482次閱讀
- 什么是C語言?單片機(jī)有什么特點(diǎn)?為什么要用C語言編程? 1266次閱讀
- C語言for循環(huán)的用法和注意事項(xiàng) 1641次閱讀
- 編程語言的加載和執(zhí)行過程 514次閱讀
- WHILE語句如何執(zhí)行 702次閱讀
- 監(jiān)控機(jī)器人運(yùn)動(dòng)的過程條件FB ONL/FB PSPS 914次閱讀
- 西門子博途SCL:WHILE:滿足條件時(shí)執(zhí)行 2545次閱讀
- WHILE ...ENDWHILE:編程設(shè)定當(dāng)型循環(huán) .EXIT:離開循環(huán),無條件退出循環(huán). 2205次閱讀
- 條件判斷語句(if語句) 3047次閱讀
- KUKA編程設(shè)定未滿足的條件 1059次閱讀
- C語言中條件編譯詳解 2885次閱讀
- 如何在ARM下實(shí)現(xiàn)高效C編程_10個(gè)關(guān)鍵點(diǎn)給你答案 3795次閱讀
- pic單片機(jī)io口控制教程之c語言編程實(shí)現(xiàn) 1.1w次閱讀
下載排行
本周
- 1FS4059C帶NTC升壓型三節(jié)鋰電池充電管理IC數(shù)據(jù)手冊
- 3.53 MB | 3次下載 | 免費(fèi)
- 216位數(shù)字輸出型環(huán)境光強(qiáng)度傳感器集成電路bh1750FVI中文數(shù)據(jù)手冊
- 2.67 MB | 1次下載 | 免費(fèi)
- 3MCx8316x 在掃地機(jī)器人中的應(yīng)用
- 1.34MB | 1次下載 | 免費(fèi)
- 4掃地機(jī)器人中的霍爾效應(yīng)傳感器應(yīng)用說明
- 666.09KB | 1次下載 | 免費(fèi)
- 5如何調(diào)整模擬前端信號鏈的 S 參數(shù)
- 794.19KB | 1次下載 | 免費(fèi)
- 6FS4059B帶NTC升壓型兩節(jié)鋰電池充電管理IC數(shù)據(jù)手冊
- 3.24 MB | 1次下載 | 免費(fèi)
- 7基于波形捕獲的超聲波傳感水流量計(jì)量技術(shù)應(yīng)用說明
- 1.01MB | 1次下載 | 免費(fèi)
- 8使用邏輯和翻譯優(yōu)化車身控制模塊(BCM)應(yīng)用說明
- 344.53KB | 次下載 | 免費(fèi)
本月
- 1HFSS電磁仿真設(shè)計(jì)應(yīng)用詳解PDF電子教程免費(fèi)下載
- 24.30 MB | 129次下載 | 1 積分
- 2繼電保護(hù)原理
- 2.80 MB | 40次下載 | 免費(fèi)
- 3正激、反激、推挽、全橋、半橋區(qū)別和特點(diǎn)
- 0.91 MB | 34次下載 | 1 積分
- 4labview實(shí)現(xiàn)DBC在界面加載配置
- 0.57 MB | 24次下載 | 5 積分
- 5在設(shè)計(jì)中使用MOSFET瞬態(tài)熱阻抗曲線
- 1.57MB | 15次下載 | 免費(fèi)
- 6GBT 4706.1-2024家用和類似用途電器的安全第1部分:通用要求
- 7.43 MB | 14次下載 | 免費(fèi)
- 7AD18學(xué)習(xí)筆記
- 14.47 MB | 8次下載 | 2 積分
- 8H橋中的電流感測
- 545.39KB | 7次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935113次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191360次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183329次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81578次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73804次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評論
查看更多