您的位置:網(wǎng)站首頁(yè) > 電器維修資料網(wǎng) > 正文 >
C語(yǔ)言與匯編語(yǔ)言程序的混合編程
來(lái)源: 日期:2013-12-18 14:00:46 人氣:標(biāo)簽:
c51編譯器能對(duì)c語(yǔ)言源程序進(jìn)行高效率的編譯,生成高效簡(jiǎn)潔的代碼,在絕大多數(shù)場(chǎng)合采用c語(yǔ)言編程即可完成預(yù)期的目的。但有時(shí)為了編程直觀或某些特殊地址的處理,還須采用一定的匯編語(yǔ)言編程。而在另一些場(chǎng)合,出于某種目的,匯編語(yǔ)言也可調(diào)用c語(yǔ)言。在這種混合編程中,關(guān)鍵是參數(shù)的傳遞和函數(shù)的返回值。它們必須有完整的約定,否則數(shù)據(jù)的交換就可能出錯(cuò)。
c語(yǔ)言調(diào)用匯編語(yǔ)言程序一般有兩種方法:
一種是對(duì)匯編函數(shù)名等定義使用c語(yǔ)言,但是在函數(shù)的內(nèi)部是通過(guò)#pragma asm和#pragma endasm關(guān)鍵字來(lái)寫(xiě)入?yún)R編程序;另一種方式是將所有的與函數(shù)有關(guān)的代碼都用匯編來(lái)實(shí)現(xiàn),這些匯編代碼存成單獨(dú)的文件,以 a51和.a(chǎn)sm為文件后綴名,并將其天添加到項(xiàng)目中,然后在要調(diào)用這些匯編程序的c文件中使用exter關(guān)鍵字來(lái)定義出函數(shù)原型,這樣就可以直接對(duì)其進(jìn)行調(diào)用了。由于第一種方法比較簡(jiǎn)單,所以第一種方法也就被廣大的設(shè)計(jì)人員所采用,限于篇幅關(guān)系,這里通過(guò)一個(gè)簡(jiǎn)單的例子介紹一下第一種調(diào)用方法。
例:在主程序(c語(yǔ)言編寫(xiě))中調(diào)用一個(gè)簡(jiǎn)單的匯編語(yǔ)言延時(shí)子程序。
#pragrna src//注意這個(gè)語(yǔ)句是加在程序開(kāi)頭的。
【看看這篇文章在百度的收錄情況】