龐新法PANG Xin-fa
(陜西省委黨??萍冀萄胁浚靼?710061)
(Technology Research Department,Shaanxi Province Party School of the CPC,Xi'an 710061,China)
C 語(yǔ)言是目前流行很廣的一種高級(jí)語(yǔ)言,它可編寫出靈活和多功能的用戶界面,匯編語(yǔ)言程序可直接控制硬件,運(yùn)行速度快,占用存儲(chǔ)空間小,如何發(fā)揮各自優(yōu)勢(shì),取長(zhǎng)補(bǔ)短,提高程序的開(kāi)發(fā)效率和運(yùn)行效率,讓C 語(yǔ)言與匯編語(yǔ)言混合編程是一種非常有效的方法,混合編程必然涉及到二者相互調(diào)用時(shí)的接口、語(yǔ)法規(guī)則、語(yǔ)義規(guī)則。本文結(jié)合實(shí)例予以詳細(xì)分析。
①匯編、C 模塊對(duì)自己未定義但要用的別的模塊的名字要聲明。
C 模塊聲明格式:函數(shù)聲明格式:extern 類型 函數(shù)名(形參表);
變聲明格式:Extern 類型 變量;
匯編模塊聲明格式:函數(shù)聲明格式:extern 函數(shù)名:屬性(near,far);
變聲明格式:Extern 變量名:屬性(byte,word,dword 等)。
②自己定義的不但自己可用,而且可供別的模塊引用的也必須聲明。
匯編模塊聲明格式:PUBLIC 名字(變量名或函數(shù)名)。
C 模塊聲明格式:全局變量,函數(shù)名前不加static 即可。
③C 語(yǔ)言與匯編語(yǔ)言的變量對(duì)應(yīng)關(guān)系。
表1
④C 語(yǔ)言的存貯模式與匯編語(yǔ)言函數(shù)類型對(duì)應(yīng)關(guān)系。C 存貯模式是微型、小型和緊湊時(shí),則匯編程序把函數(shù)聲明、定義成near 屬性;C 是中型、大型和巨型時(shí),則匯編程序把函數(shù)聲明、定義成far 屬性。
2.1 C 程序調(diào)用匯編程序
2.1.1 C 調(diào)匯編中的變量
運(yùn)行結(jié)果是:B
2.2 匯編程序調(diào)用C 程序
2.2.1 匯編調(diào)C 的變量
運(yùn)行結(jié)果是:70
2.2.2 匯編調(diào)C 的函數(shù)
end 運(yùn)行結(jié)果是:ABC
2.3 匯編程序、C 程序相互調(diào)用
運(yùn)行結(jié)果是:ABC 和61
混合編程,必然涉及接口,匯編如何調(diào)C 的函數(shù)、全局變量。C 如何調(diào)匯編的函數(shù)、變量。本文對(duì)此做了詳盡分析。
[1]譚浩強(qiáng).C 語(yǔ)言程序設(shè)計(jì)[M].清華大學(xué)出版社,2004.
[2]丁愛(ài)萍.C 語(yǔ)言程序設(shè)計(jì)實(shí)例教程[M].西安電子科技大學(xué)出版社,2006.
[3](美)布魯姆著.編語(yǔ)言程序設(shè)計(jì)[M].馬朝暉譯.北京:機(jī)械工業(yè)出版社,2006.