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

        ?

        基于匯編語(yǔ)言與C/C++語(yǔ)言混合編程的設(shè)計(jì)研究

        2017-04-15 05:42:50山東省濰坊第一中學(xué)高68級(jí)李明陽(yáng)
        電子世界 2017年3期
        關(guān)鍵詞:匯編語(yǔ)言子程序調(diào)用

        山東省濰坊第一中學(xué)高68級(jí) 李明陽(yáng)

        基于匯編語(yǔ)言與C/C++語(yǔ)言混合編程的設(shè)計(jì)研究

        山東省濰坊第一中學(xué)高68級(jí) 李明陽(yáng)

        計(jì)算機(jī)與人們的生活已經(jīng)緊密的聯(lián)系在一起,計(jì)算機(jī)功能的實(shí)現(xiàn)主要依靠計(jì)算機(jī)語(yǔ)言,通過計(jì)算機(jī)語(yǔ)言編制相應(yīng)的程序。在涉及到大規(guī)模程序設(shè)計(jì)的時(shí)候,采用單一語(yǔ)言就無法發(fā)揮應(yīng)有的優(yōu)勢(shì),不同語(yǔ)言進(jìn)行混合編程能夠?qū)崿F(xiàn)優(yōu)勢(shì)互補(bǔ),對(duì)于實(shí)際問題的解決非常有效。本文就基于匯編語(yǔ)言與C/C++語(yǔ)言混合編程的設(shè)計(jì)研究作簡(jiǎn)要的闡述。

        匯編語(yǔ)言;C++;設(shè)計(jì)研究

        匯編語(yǔ)言的特點(diǎn)在于占用的空間小,運(yùn)行的速度快,是面向機(jī)器的一種語(yǔ)言,在某些場(chǎng)合具有無可替代的作用。其不足之處在于較為高級(jí)的語(yǔ)言程序編寫存在一定難度,在處理數(shù)據(jù)時(shí)這一點(diǎn)體現(xiàn)的更加明顯。C++是一種高級(jí)語(yǔ)言,功能豐富,表達(dá)靈活,開發(fā)高效,在應(yīng)用性方面要?jiǎng)龠^匯編語(yǔ)言。但是在考慮到執(zhí)行速度,占用空間的前提下,C++語(yǔ)言則不具有優(yōu)勢(shì)。

        一、兩種語(yǔ)言進(jìn)行混合編程的約定

        兩種語(yǔ)言進(jìn)行混合編程的時(shí)候主要有以下幾個(gè)方面的約定。

        C++與匯編語(yǔ)言進(jìn)行編程的時(shí)候,首先要采用一致的調(diào)用協(xié)議,C++有三種調(diào)用協(xié)議。其次是入口及返回參數(shù)的確定,在C++中所有的調(diào)用都是32位的偏移地址。最后是要聲明公用函數(shù)名與變量名。

        C語(yǔ)言在調(diào)用匯編語(yǔ)言時(shí)標(biāo)識(shí)符前要添加下劃線,相互調(diào)用的時(shí)候,匯編語(yǔ)言中標(biāo)識(shí)符要依照C++語(yǔ)言的習(xí)慣。

        聲明約定,對(duì)于需要調(diào)用的外部函數(shù),變量都進(jìn)行相應(yīng)的說明,標(biāo)識(shí)符是為了在其它的模塊可見[1]。對(duì)于BP,DS,CS,SS,SP在使用并改變其值時(shí)候,需要進(jìn)行保護(hù)。兩種程序的語(yǔ)言在存儲(chǔ)模式方面要相同。存儲(chǔ)模式相同就會(huì)產(chǎn)生兼容的調(diào)用及返回類型。

        最后一點(diǎn)是傳遞參數(shù)的確定,壓入堆棧與實(shí)參數(shù)表參數(shù)的順序是相反的。

        二、混合編程的方法

        兩種語(yǔ)言進(jìn)行混合編程的方式主要有兩種,一種是在C++源程序中直接插入?yún)R編語(yǔ)言代碼,此種方式也被稱之為嵌入式匯編。另一種則是在程序中調(diào)用外部語(yǔ)言。

        對(duì)于嵌入式匯編而言,在C++源程序中需要的地方插入?yún)R編指令,并在嵌入的匯編指令加上相應(yīng)的關(guān)鍵字。C++中內(nèi)嵌匯編語(yǔ)言,在VisualC++6.0操作的時(shí)候,嵌入?yún)R編指令,需要使用到關(guān)鍵字。其中在asm中的組匯編指令可以有標(biāo)號(hào),C++中的語(yǔ)句以及匯編指令也可以跳轉(zhuǎn),跳轉(zhuǎn)位置是該組匯編指令中的標(biāo)號(hào)或者是指令組之外的標(biāo)號(hào)。那么,除此之外,asm所帶的匯編指令調(diào)用的只能是無重載的全局C++函數(shù),并且對(duì)函數(shù)的類型有一定的要求。以C++實(shí)現(xiàn)相同次數(shù)的減法為例,通過對(duì)兩個(gè)程序運(yùn)算比較,采用嵌入式匯編的速度要比單純的采用C++語(yǔ)句快,從時(shí)間上計(jì)算,前者與后者相比,能夠節(jié)約百分之三十的時(shí)間。對(duì)于實(shí)用性較高的工業(yè)領(lǐng)域,以及存在大量計(jì)算的開發(fā)軟件中,采用兩種語(yǔ)言進(jìn)行混合編程的方法可以大大提升程序運(yùn)行時(shí)的速度。

        C++程序調(diào)用匯編程序。采用嵌入式匯編的方法,主要適用于程序較短的情況,然而在實(shí)際的運(yùn)用中,通常通過語(yǔ)言調(diào)用的方式來實(shí)現(xiàn)。在匯編語(yǔ)言作為C++語(yǔ)言的外部子程序進(jìn)行調(diào)用的時(shí)候,匯編程序的開存在兩個(gè)必須要執(zhí)行的命令,分別是movbp,sp與pusbbp。此處的兩條指令是參數(shù)傳遞的關(guān)鍵,使得bp成為指向堆棧元素的指針。在這兩命令后加上相應(yīng)的語(yǔ)句就可以實(shí)現(xiàn)對(duì)不同數(shù)據(jù)的分配。其中局部數(shù)據(jù)的總的大小和是以字節(jié)進(jìn)行計(jì)算的,局部數(shù)據(jù)保留空間則是通過sp值的減小來實(shí)現(xiàn),在匯編的時(shí)候應(yīng)該恢復(fù)該空間。在對(duì)某個(gè)參數(shù)進(jìn)行訪問的時(shí)候,可以通過bp與參數(shù)的位移量來進(jìn)行確定。在此假設(shè)返回位置的字節(jié)數(shù)為N,參數(shù)與bp之間所占的字節(jié)的總數(shù)為M,則參數(shù)的部的位移量就是兩者的和再加上二。

        匯編程序退出的時(shí)候,如果在一開始就保存了寄存器值,那么就應(yīng)該以與入棧相反的順序彈出。在已分配局部空間數(shù)據(jù)的前提下,應(yīng)該執(zhí)行相應(yīng)的命令,并返回調(diào)用程序。在調(diào)用結(jié)束后,子程序通過寄器DX與AX進(jìn)行返回值傳遞,并且當(dāng)返回值的類型是簡(jiǎn)單型的時(shí)候,在字節(jié)數(shù)不超過4字節(jié)時(shí),返回值的長(zhǎng)度與默認(rèn)的存放器的關(guān)系有一定的對(duì)應(yīng)規(guī)律。

        C語(yǔ)言程序調(diào)用匯編語(yǔ)言子程序[2]。為了確保調(diào)用功能的正常,匯編源程序要嚴(yán)格依照編譯系統(tǒng)的要求進(jìn)行段組合。被調(diào)用的匯編語(yǔ)言子程序有一定的格式約定。由于程序存在堆棧段是面向機(jī)器的,對(duì)于匯編子程序開頭有一定的特殊要求。為確保C語(yǔ)言主程序在調(diào)用的過程中不至于存在問題,需要用關(guān)鍵字對(duì)函數(shù)做顯示的說明,被調(diào)用的語(yǔ)言過程為外部函數(shù)。

        匯編語(yǔ)言程序調(diào)用C語(yǔ)言子程序。C語(yǔ)言不具有匯編語(yǔ)言的某些方面的優(yōu)勢(shì),比如匯編程序在輸入過程中可以直接讀取數(shù)據(jù)。該種模式下,主程序的格式與子程序格式一致,唯一存在差別的是在程序的開頭位置需要加入一定的語(yǔ)句,同時(shí)也省略了部分堆棧操作語(yǔ)言。

        C語(yǔ)嵌入?yún)R編語(yǔ)言。C語(yǔ)言中可以直接編寫匯編語(yǔ)言的代碼,匯編語(yǔ)句在C語(yǔ)言中嵌入沒有分號(hào),在嵌入一組語(yǔ)言的時(shí)候,則需要用一定的符號(hào)進(jìn)行處理。在該種模式下,C語(yǔ)言允許嵌入四種命令,分別是一般指令,串操作指令,跳轉(zhuǎn)指令,分配指令。

        兩種程序的相互調(diào)用?;旌暇幊桃⒁鈳讉€(gè)方面的問題。參數(shù)傳遞的原則,寄存器的正確使用,存儲(chǔ)模式,函數(shù)與變量之間的相互調(diào)用問題,子程序的返回值。匯編語(yǔ)言要用到多個(gè)寄存器,C++語(yǔ)言也會(huì)用到一定量的寄存器,對(duì)于寄存器應(yīng)該重點(diǎn)關(guān)注,否則可能會(huì)導(dǎo)致程序的失敗。C++語(yǔ)言中,BP作為參數(shù)及自動(dòng)變量區(qū)的基地址。由于編譯后的文件在函數(shù)與變量前自動(dòng)的添加了下劃線,匯編語(yǔ)言在調(diào)用C++語(yǔ)言的時(shí)候,同樣要在函數(shù)名與變量名前添加下劃線,并且在匯編程序的開始部分要對(duì)調(diào)用的變量及函數(shù)進(jìn)行相應(yīng)說明。反之或是C++語(yǔ)言程序調(diào)用匯編語(yǔ)言程序,匯編語(yǔ)言應(yīng)該進(jìn)行說明,并且變量與函數(shù)的第一個(gè)符號(hào)為下劃線。當(dāng)C++語(yǔ)言調(diào)用匯編語(yǔ)言子程序時(shí),被調(diào)用的子程序返回調(diào)用它的程序的時(shí),返回值是通過寄存器傳遞的。并且視返回值的不同情況放于不同的存儲(chǔ)器中[3]。

        三、結(jié)束語(yǔ)

        C/C++語(yǔ)言與匯編語(yǔ)言結(jié)合在一起的混合編程應(yīng)用性非常的廣泛,二者結(jié)合在一起,能夠有效的避免單一語(yǔ)言的不足,并將優(yōu)勢(shì)進(jìn)行一步發(fā)揮,不足之處在結(jié)合后也會(huì)互補(bǔ)。C語(yǔ)言與匯編語(yǔ)言之間可以是調(diào)用與被調(diào)用的關(guān)系,也可以相互調(diào)用的關(guān)系。二者結(jié)合的時(shí)候要注意到相關(guān)方面的問題,比如內(nèi)存模式與寄存器的不同分配對(duì)程序的影響。在編程的時(shí)候,盡可能的利用各自的優(yōu)勢(shì),將過程簡(jiǎn)化,以最小的努力換取最大的收獲。

        [1]夏娟,趙梅.匯編語(yǔ)言與C/C++語(yǔ)言的混合編程[J].蘇州市職業(yè)大學(xué)學(xué)報(bào),2012(01).

        [2]周曉燕.ARM匯編語(yǔ)言與C/C++語(yǔ)言混合編程實(shí)現(xiàn)方法[J].電子技術(shù)與軟件工程,2014(03).

        [3]李颯瑛.C語(yǔ)言與匯編語(yǔ)言混合編程技術(shù)研究[J].電子技術(shù)與軟件工程,2013(14).

        [4]孟祥娜.匯編語(yǔ)言與C語(yǔ)言混合編程方法探討[J].電腦編程技巧與維護(hù),2015(06).

        猜你喜歡
        匯編語(yǔ)言子程序調(diào)用
        高等學(xué)校計(jì)算機(jī)專業(yè)課程教學(xué)改革實(shí)踐——以匯編語(yǔ)言與接口技術(shù)課程為例
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        匯編語(yǔ)言與C語(yǔ)言的混合程序設(shè)計(jì)技術(shù)研究
        電子制作(2019年10期)2019-06-17 11:45:16
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        提高《匯編語(yǔ)言程序設(shè)計(jì)》教學(xué)效率的思考與實(shí)踐
        基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
        淺談子程序在數(shù)控車編程中的應(yīng)用
        子程序在數(shù)控車加工槽中的應(yīng)用探索
        西門子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
        利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
        3亚洲日韩在线精品区| 豆国产96在线 | 亚洲| 日本大肚子孕妇交xxx| 性生交大全免费看| 中文字幕一区二区三区四区在线| 亚洲精品国产主播一区二区 | 一区二区午夜视频在线观看| 中文字幕av久久亚洲精品| 国产色在线 | 亚洲| 亚洲中文无码av在线| 欧美片欧美日韩国产综合片| 精品国产亚洲av高清日韩专区| 亚洲a无码综合a国产av中文| 亚洲国产天堂一区二区三区| 亚洲国产高清在线观看视频| 在线视频一区二区亚洲| 国产一区二区三区免费视| 亚洲精品一区久久久久一品av| 777午夜精品免费观看| 亚洲欧美日韩高清中文在线 | 亚洲 都市 校园 激情 另类| 日本韩国黄色三级三级| 羞羞色院99精品全部免| 人妻少妇乱子伦无码视频专区| 色欲av亚洲一区无码少妇| 久久久精品2019免费观看| 亚洲捆绑女优一区二区三区| а√天堂8资源中文在线| 国产又色又爽无遮挡免费| 亚洲成a人片在线观看高清| 亚洲天堂av一区二区三区不卡| 欧美成人秋霞久久aa片| 国产老熟女狂叫对白| 无码视频一区=区| 99精品久久精品一区| 美女高潮黄又色高清视频免费| 久久久久久久性潮| 99热久久只有这里是精品| 在线免费看91免费版.| 国产精品久久777777| 中文人妻无码一区二区三区信息|