加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 4.3  條件執(zhí)行
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

高效的C編程之:條件執(zhí)行

2013/09/30
閱讀需 3 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

4.3  條件執(zhí)行

ARM指令都是可以條件執(zhí)行的。在代碼中使用條件執(zhí)行指令可以減小代碼密度并提高程序執(zhí)行效率。典型的條件執(zhí)行語句用在比較指令之后,形成程序的分支跳轉(zhuǎn)結(jié)構(gòu)。下面的例子顯示了條件執(zhí)行指令的典型用法。

CMP   x, #0

MOVGE y, #1

MOVLT y, #0

但當代碼中連續(xù)的條件執(zhí)行指令超過4條時,就會影響程序的執(zhí)行速度。所以編譯器在編譯程序時,限制條件指令連續(xù)出現(xiàn)的次數(shù)。

ARM編譯器常把C語言中的if…else結(jié)構(gòu)編譯成條件執(zhí)行指令,但子程序調(diào)用一般是不能條件執(zhí)行的。所以在編程時盡可以地使用簡單的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

Arm

ARM公司是一家知識產(chǎn)權(quán)(IP)供應商,主要為國際上其他的電子公司提供高性能RISC處理器、外設和系統(tǒng)芯片技術授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計算設備、多媒體數(shù)字消費品等方案的RISC標準。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知識產(chǎn)權(quán)(IP)供應商,主要為國際上其他的電子公司提供高性能RISC處理器、外設和系統(tǒng)芯片技術授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計算設備、多媒體數(shù)字消費品等方案的RISC標準。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相關推薦

電子產(chǎn)業(yè)圖譜

華清遠見(www.farsight.com.cn)是國內(nèi)領先嵌入師培訓機構(gòu),2004年注冊于中國北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營分公司。華清遠見除提供嵌入式相關的長期就業(yè)培訓、短期高端培訓、師資培訓及企業(yè)員工內(nèi)訓等業(yè)務外,其下屬研發(fā)中心還負責嵌入式、Android及物聯(lián)網(wǎng)方向的教學實驗平臺的研發(fā)及培訓教材的出版,截止目前為止已公開出版70余本嵌入式/移動開發(fā)/物聯(lián)網(wǎng)相關圖書。企業(yè)理念:專業(yè)始于專注 卓識源于遠見。企業(yè)價值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。