天天看點

turbo c 混編 彙編語言,彙編語言與Turbo C語言的混合程式設計方法

1調用協定在語言編譯程式調用函數時遵循一個調用協定[1],協定規定語言主函數調用子函數時傳遞參數以及傳回函數值的方式:一般編譯程式使用堆棧傳遞參數,用寄存器傳回函數值。協定還規定哪些寄存器的内容需儲存,哪些寄存器可以自由使用。隻有在編寫程式時遵守協定,彙程式設計式才可以與語言程式正确連接配接。1)參數傳遞。語言主程式在調用函數時,把參數按從右到左的順序存入堆棧,例如,調用函數(,,)時,先入棧,依次是,最後是.2)函數值的傳回。一般彙編子程式傳回結果時,采用以下方法:當傳回值為16位資料時,傳回值放在寄存器中;當傳回值為32位資料時,傳回值放在:中,放高16位,放低16位;當傳回指針時,對小模式,16位偏移位址放中,對大模式,段位址放中,偏移位址放中。3)使用寄存器的約定。當彙程式設計式用到,,時,必須在使用前儲存其内容,在函數傳回前恢複其内容,通用寄存器,,,及标志寄存器的内容可改變;段寄存器及一般不作改動。對小模式,中模式而言,使用近指針時,不改動;對大模式而言,使用遠指針時,使用前儲存内容,傳回前恢複。2彙編函數代碼的生成在這裡使用指令行方式的-編譯選項生成代碼[1],通過以下例子來說明。首先建立彙程式設計式函數的架構,再加入實作函數功能的指令序列。例如,實作兩數相加,傳回和的函數:(,){//函數架構}使用-選項編譯該檔案(檔案名為.),生成一彙編檔案(檔案名為.),檔案代碼如下:,:,:@@@;(,):,;{};@@@在語句“,”之後加入下列指令:,[+4],[+6]再建立主函數:(){,;(“%%”,,);(“%”,(,));}3彙程式設計式與程式的連接配接1)直接對源程式連接配接[2]指令格式:1.2.1,2分别為語言程式和彙程式設計式的源檔案名。2)用對目标文接連[2]指令格式:-1.2.…其中可以為,,,,,分别對應小模式,緊湊模式,中模式,大模式,極大模式。在這種方法時下,需要先對各子產品分别編譯(利用的編譯器和)。3)利用對目标檔案連接配接[2]指令格式:,,[],<>其中為,,,,中的一個;.是各目标檔案名,是可執行檔案的檔案名;[]是鏡像檔案名,可省略;<>是使用者的庫檔案名彙編語言與TurboC語言的混合程式設計方法@李馳新$蘭州工業高等專科學校計算機工程系!甘肅蘭州730050

@權曉紅$蘭州工業高等專科學校計算中心!甘肅蘭州730050接口;;編譯;;連接配接一般有兩種方法實作彙編語言程式與C語言連接配接:一種是分别編寫彙程式設計式與C程式,然後連接配接;另一種是使用關鍵字“asm”把彙程式設計式嵌入C程式中。本文将讨論第一種方法,并介紹一種簡單的方法生成彙程式設計式代碼[1]徐金梧.TurboC實用大全[M].北京:機械工業出版社,1996.

[2]王永山.微型計算機原理及應用[M].西安:西安電子科技大學出版社,1996.12