新聞中心

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

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

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

本文引用地址:http://butianyuan.cn/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ù)專(zhuān)區(qū)

關(guān)閉