新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 高效的C編程之:布爾表達(dá)式

        高效的C編程之:布爾表達(dá)式

        作者: 時(shí)間:2013-09-30 來(lái)源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.104case.com/article/257021.htm

        下面是C語(yǔ)言中的關(guān)系操作被編譯的例子。

        C源文件如下所示。

        intg(intx,inty)

        {

        if((x+y)0)

        return1;

        else

        return0;

        }

        編譯后的結(jié)果如下。

        g

        ADDSa1,a1,a2

        MOVPLa1,#0

        MOVMIa1,#1

        MOVpc,lr

        所以,在使用C語(yǔ)言編程時(shí),關(guān)系操作最好轉(zhuǎn)換成和零相關(guān)的,這樣既可以減少代碼密度,也可以提高程序的執(zhí)行效率。

        C語(yǔ)言中,沒(méi)有和程序狀態(tài)寄存器的C位和V位直接相關(guān)的指令,所以要在程序中檢測(cè)這些標(biāo)志,只能使用內(nèi)嵌匯編。但C編譯器支持無(wú)符號(hào)溢出操作,下面的例子顯示了在有溢出操作時(shí),編譯器對(duì)程序的處理。

        C源代碼如下所示。

        intsum(intx,inty)

        {

        intres;

        res=x+y;

        if((unsigned)res(unsigned)x)/*判斷進(jìn)位標(biāo)志是否進(jìn)位*/

        res++;

        returnres;

        }

        編譯的匯編文件如下所示。

        sum

        ADDSa2,a1,a2

        ADCa2,a2,#0

        MOVa1,a2

        MOVpc,lr


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 宜州市| 阳高县| 剑川县| 瑞丽市| 荃湾区| 麻栗坡县| 册亨县| 井冈山市| 久治县| 安图县| 赤壁市| 乐山市| 台北市| 镇坪县| 民乐县| 丰台区| 于田县| 时尚| 行唐县| 台江县| 安福县| 巴彦县| 阜新| 扎囊县| 来安县| 巍山| 万盛区| 五原县| 澄迈县| 镇宁| 义马市| 洛扎县| 敖汉旗| 宁阳县| 虎林市| 宜都市| 廉江市| 石阡县| 兴业县| 江门市| 姚安县|