亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        C語(yǔ)言和匯編語(yǔ)言混合編程方法

        2014-10-08 07:33:48龐新法PANGXinfa
        價(jià)值工程 2014年24期
        關(guān)鍵詞:程序

        龐新法 PANG Xin-fa

        (陜西省委黨校科技教研部,西安 710061)

        (Research and Technology Department,Shaanxi Province Party School of the CPC,Xi'an 710061,China)

        0 引言

        匯編語(yǔ)言是一種面向機(jī)器的語(yǔ)言,其優(yōu)點(diǎn)是運(yùn)行速度快,占用存儲(chǔ)空間小,可直接對(duì)硬件進(jìn)行控制。缺點(diǎn)是編寫、調(diào)試?yán)щy、移植性差。C語(yǔ)言簡(jiǎn)潔、靈活、庫(kù)函數(shù)豐富、調(diào)試方便、移植性好,目前已被廣泛地應(yīng)用于系統(tǒng)軟件和應(yīng)用軟件的開發(fā)中,為了發(fā)揮各自優(yōu)勢(shì),取長(zhǎng)補(bǔ)短,采用混合編程。大部分程序,如界面、人機(jī)接口(外殼程序)、數(shù)據(jù)處理等用C語(yǔ)言編寫,以提高程序的開發(fā)效率。而某些程序,如需要縮短程序的運(yùn)行時(shí)間,或需要對(duì)硬件進(jìn)行直接操作,或需要利用操作系統(tǒng)的某些功能模塊,或頻繁使用的程序、或需要占用內(nèi)存空間少的程序(內(nèi)核程序),則用匯編編寫,以提高程序的運(yùn)行效率。

        1 嵌入式匯編

        嵌入式匯編也稱行內(nèi)匯編,源程序中直接插入?yún)R編語(yǔ)句。匯編語(yǔ)句可直接訪問(wèn)C程序中定義的常量、變量、函數(shù)。不必考慮二者之間的接口,方便編程。

        1.1 嵌入式匯編語(yǔ)句的格式

        格式:asm操作碼操作數(shù)[;或換行]

        其中:操作數(shù)可以是匯編語(yǔ)句中的立即數(shù)、寄存器、表達(dá)式等還可以是C中的常量、變量、標(biāo)號(hào)等。分號(hào);是匯編語(yǔ)句結(jié)束符,并非注解,要用注解,用C的注解。如下例所示。

        1.2 匯編語(yǔ)句訪問(wèn)C的數(shù)據(jù)

        嵌入的匯編語(yǔ)句可以訪問(wèn)C語(yǔ)言程序中的任何標(biāo)識(shí)符,包括變量、常量、標(biāo)號(hào)、函數(shù)名、寄存器變量、函數(shù)參數(shù)等。如下例所示。

        1.3 匯編語(yǔ)言與C語(yǔ)言接口規(guī)則

        ①C語(yǔ)句訪問(wèn)寄存器,必須在寄存器名前加一個(gè)下劃線。如例2中的return_AX;

        ②asm、C語(yǔ)句均可以有標(biāo)號(hào),但不能用asm語(yǔ)句定義標(biāo)號(hào)。

        ③匯編語(yǔ)句的數(shù)據(jù)定義放在函數(shù)外面,指令放在函數(shù)里面。

        所有在函數(shù)外的的匯編語(yǔ)句都作為數(shù)據(jù)聲明處理,即在編譯器編譯時(shí)會(huì)將它放在數(shù)據(jù)段中,也就是說(shuō)不可以在函數(shù)外面寫匯編命令語(yǔ)句,把指令當(dāng)數(shù)據(jù)。

        所有在函數(shù)內(nèi)的匯編語(yǔ)句必須是指令性語(yǔ)句,在編譯后都放在代碼段中。也就是說(shuō)不可以在函數(shù)內(nèi)使用匯編數(shù)據(jù)定義語(yǔ)句,把數(shù)據(jù)當(dāng)指令。

        ④不要在以asm開頭的語(yǔ)句中使用C語(yǔ)言的關(guān)鍵字,這會(huì)導(dǎo)致編譯錯(cuò)誤

        1.4 編譯過(guò)程

        命令行鍵入命令:TCC-B-Iinclude-Llib文件名.c即可.TCC會(huì)自動(dòng)調(diào)用TASM.EXE和TLINK.EXE,并且TLINK.EXE能正確的找到需要的.obj和.lib文件,要保證TC目錄下存在TASM.EXE文件。如果單步編譯,可能會(huì)碰到很多的問(wèn)題,主要是TLINK.EXE不會(huì)自己去找.obj和.lib文件。該命令的功能是:.C→編譯TCC→.ASM→匯編TASM→.OBJ→連接TLINK→.EXE。

        2 Turbo C模塊連接方式

        C、匯編程序各自編程,各自編譯,然后連接在一起。

        2.1 匯編語(yǔ)言與C語(yǔ)言接口規(guī)則

        ①命名約定:匯編的名字前加一個(gè)下劃線,C的名字前不加下劃線(編譯后內(nèi)部自動(dòng)加),以確保兩個(gè)模塊內(nèi)部名字一致。

        運(yùn)行結(jié)果是:456B123

        但是,如果匯編程序設(shè)置采用C語(yǔ)言類型,則標(biāo)識(shí)符前不加下劃線,(匯編后內(nèi)部自動(dòng)加),以確保兩個(gè)模塊內(nèi)部名字一致。

        ②聲明約定:匯編、C模塊對(duì)自己未定義但要用的別的模塊的名字要聲明。

        C模塊聲明格式:函數(shù)聲明格式:extern類型函數(shù)名(形參表);如例5 z1.c。

        變聲明格式:Extern類型變量;

        匯編模塊聲明格式:函數(shù)聲明格式:extern函數(shù)名:屬性(near,far)。

        變聲明格式:Extern變量名:屬性(byte,word,dword等)

        自己定義的可供別的模塊引用的也必須聲明。

        匯編模塊聲明格式:PUBLIC名字(變量名或函數(shù)名)如例6 z2.asm。

        C模塊聲明格式:全局變量,函數(shù)名前不加static即可。

        ③寄存器要保護(hù):C調(diào)匯編程序時(shí),匯編子程序中用到的寄存器最好全部保護(hù),退出時(shí)恢復(fù),以免影響主程序C的執(zhí)行。

        ④C、匯編程序存貯模式要一致。

        2.2 編譯連接

        ①TASM文件名,把匯編程序翻譯成目標(biāo)程序。TCC C文件名,把C程序翻譯成目標(biāo)程序,C只編譯不連接。②TLINK把若干個(gè)目標(biāo)程序連接成一個(gè)EXE程序。③運(yùn)行。

        3 結(jié)語(yǔ)

        混合編程,主要涉及接口,匯編調(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.

        猜你喜歡
        程序
        給Windows添加程序快速切換欄
        試論我國(guó)未決羈押程序的立法完善
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
        基于VMM的程序行為異常檢測(cè)
        偵查實(shí)驗(yàn)批準(zhǔn)程序初探
        我國(guó)刑事速裁程序的構(gòu)建
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        恐怖犯罪刑事訴訟程序的完善
        亚洲无码视频一区:| 色欲av伊人久久大香线蕉影院| 国产日产精品一区二区三区四区的特点| 又色又污又爽又黄的网站| 在线免费欧美| 男女动态视频99精品| 人人妻人人澡人人爽精品日本| 无码人妻久久一区二区三区app | 国产精品视频二区不卡| 人妻精品久久中文字幕| 在线亚洲妇色中文色综合| 强奸乱伦影音先锋| 日韩精品无码视频一区二区蜜桃| 精品久久久久久蜜臂a∨| 韩国黄色三级一区二区| 国产精品国产三级国产av剧情| 99久久久无码国产精品试看| 一区二区三区国产在线网站视频| 久久中文字幕国产精品| 中文字幕免费在线观看动作大片| 国产久热精品无码激情| 日本a在线天堂| 手机在线免费观看的av| 国产亚av手机在线观看| 精品无码久久久久久久动漫| 国产一级片内射在线视频| 蜜桃传媒网站在线观看| 日韩av东京社区男人的天堂| 国产精品无码Av在线播放小说| 丰满人妻一区二区三区精品高清| 人妻少妇偷人精品免费看| 国产xxxx99真实实拍| 亚洲无码性爱视频在线观看| 男女性行为免费视频网站| 日韩精品一区二区三区中文| 特黄aa级毛片免费视频播放| 精品久久一区二区av| 无套熟女av呻吟在线观看| 无码少妇一区二区三区| 久久亚洲中文字幕精品一区四 | 无码a级毛片免费视频内谢5j|