999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談匯編語言與C語言的混合程序設計技術

2015-11-23 03:12:28蔣仁祥
大眾科技 2015年2期
關鍵詞:程序

蔣仁祥

(福建師范大學數學和計算機學院,福建 福州 350007)

淺談匯編語言與C語言的混合程序設計技術

蔣仁祥

(福建師范大學數學和計算機學院,福建 福州 350007)

匯編語言實際上就是一種針對機器的語言形式,具有極快的運行速度和較小的存儲空間,可在一定條件下直接控制硬件,在多種領域中均得到廣泛的應用,并具有至關重要的作用。然而在實際的編寫與調試環節中,其難度和復雜程度都是很大的,特別是混合運算環節。C語言具有極高的靈活性和表達能力,在軟件的開發環節,運用匯編語言與C語言的混合程序設計技術,不僅可以有效解決單一使用匯編語言處理數據時的困難,還可大幅提高實際的運行效率。文章闡述了兩種語言混合編程的具體方法,以及二者在連接時應注意的問題,為該混合程序設計技術的推廣與應用奠定基礎。

匯編語言;C語言;混合程序設計

較大程序的設計過程中,若在充分使用匯編語言程序的前提下,充分融合其他高級語言程序,這樣不僅可以全面發揮出各類程序的特點,還能實現二者融合所帶來的優勢,實現現階段主流的混合編程。程序設計過程中,C語言在一定條件下,可完成匯編語言對應子程序的調用,這一過程是可逆的,匯編語言與C語言可相互調用,另外由于C語言具有較高的表達能力,所以在被調用時匯編語言還能將對應的語句融入其中,這是單一程序編程無法達到的,具有很高的實際價值。然而,在混合編程階段,應密切注意匯編語言與 C語言之間的連接情況,對可能造成影響的因素進行綜合分析,確?;旌暇幊贪l揮出最佳的效果。

1 混合編程方法

在實際的編程過程中,將 C語言與匯編語言充分結合的編程方法主要包括四方面內容:

(1)混合編程過程中,指定編程任務會被分成多種功能模塊,通常情況下,模塊主要以程序或者是函數的形態表現,結合模塊的實際特點選取適宜的語言完成編程,隨后運用對應的編譯系統將編程結果按要求轉換為目標文件,最終將所有目標文件進行連接,從而生成完整的文件。

(2)對于C語言程序而言,往往需要運用到在匯編程序中完成定義的常規變量。

(3)一般而言,可將匯編語句直接、快速編入C語言程序中,拓展了C語言程序的功能,有效解決了C語言程序無法控制硬件的缺陷。

(4)通過運用函數的方法,可在C語言內部快速調用匯編語句。

2 C語言程序融入匯編語句

對于 C語言程序而言,可直接完成匯編語言代碼的編寫任務,將指定的匯編語句融入到 C語言程序中時,一般不需要分號,如果所選匯編語句以組的形式存在,則需使用大括號({})。匯編語句包含多種形式,可在C語言中使用的主要分為四類,分別為跳轉、串操作、分配以及一般指令等內容。

3 C語言調用匯編子程序

為達到調用效果,還需從細節入手,確定匯編語言所對應源程序的段組合是否切實滿足編譯的實際需求,如果源程序違約勢必會對調用效果造成不同程度的影響。

3.1 基本格式

匯編程序子程序格式中的開頭和末尾分別表示程序的開始與結束,均屬偽指令范疇。匯編程序子程序名實際上就是一個標示符,由編程人員自行創建。另外,子程序名通常還表示匯編程序中第一條指令的實際邏輯地址,也可稱作入口地址。一般而言,類型只分兩種,分別為NEAR與FAR,不同類型會對程序中的調用及返回指令對應的翻譯系統造成直接影響。處在程序中心位置的序列為程序段,程序段具備特定的功能,在程序段的末尾,通常會有一條返回指令(RET)。

3.2 子程序的基本格式

與上述基本格式相比子程序主要具備以下幾方面特點:

(1)由于C語言和匯編語言的堆棧段相同,所以,為了達到混合編程的目的,對應的匯編程序在運行的初期必須進行兩條指令,這兩條指令分別為 PUSH BP(緩存?;罚┖蚆OVE BO,SP。

(2)C語言程序的調用對象需在PUBLIC偽操作的支持下進行說明,確定該子程序將要被外部所調用。

(3)C語言支持對應子程序采用DI或SI完成變量的存儲任務,由于在實際情況中,變量一般在兩個時以后進行存放,所以在C語言子程序中會生成PUSH SI/DI語句。

(4)在程序段中,不僅定義了代碼生成器、信息資料管理器還將其合成為整體的數據段(DGROUP),段組內所用的基址是一致的。

(5)程序核心語句中應包含返回函數值,而且該個函數值的具體位置應處在RET語句之前。

(6)調用的返回過程需由RET語句命令。

(7)末尾處的END僅代表程序運行完畢,并為標明實際的啟動位置。

4 調用C語言

從匯編語言的角度講,其具有的優勢是 C語言難以媲美的,比如在輸入的過程中,匯編語言支持所有進制的數據,并無需翻譯直接讀取。所以在匯編語言中調用 C語言是可以且具有一定價值的。匯編語言中各類程序的格式并沒有太大出入,主程序要求程序的開始階段具有EXTERN語句,以此表名此函數將被調用,屬外部范疇。過程語句中,可在CALL語句的支持下,完成外部函數的調用任務,具體格式為CALL NEAR PTY。如果C語言程序中的子程序具備被調用的條件,則在成為匯編語言程序的子程序時,程序中可以包含 C語言函數,無需添加EXTERN語句進行說明。C語言程序調用過程中軟件的堆棧分配如圖1所示。

圖1 軟件堆棧分配結構示意圖

5 匯編語言與C語言連接技術關鍵點

匯編語言與 C語言連接并混合編程的過程中,需要密切注意三方面內容,分別為參數傳遞、調用關系和模塊連接,只有妥善處理這三方面內容,才能有效提高匯編語言與 C語言的連接及混合編程質量,從而真正提高程序運行效率,改善編程環境。

(1)參數傳遞

匯編語言與 C語言在連接和混合編程的過程中,參數會在一定條件下進行傳遞,一般而言,傳遞過程通常運用堆棧形式。從匯編語言的角度講,主要選取BP作為堆?;返募拇嫫鳎紫葘⒄{用過程中 C語言程序產生的參數進行編排和劃分,并將其壓入至堆棧當中,如果程序在后續的運行過程中需要使用堆棧中的參數時,可再次使用BP 將參數按照實際要求和偏移量實施存取。

(2)調用關系

程序在調用之前,應建立并完善調用關系,以此說明該子程序將被調用。在調用的過程中,對應程序應表明自身已屬外部類型范疇,從而為后續的引用和計算提供便利,同時,調用程序同樣需要及時說明將要被引用程序的具體名稱。在確定調用關系的過程中,還需結合各類存儲模式的具體要求,確定程序的語言格式。C語言程序的小模式一般與匯編語言程序中的近類型相對應,而大模式則與遠類型相對應。

(3)模塊連接

為確保匯編語言與 C語言連接與混合編程的可靠性,還需進一步完善兩方面工作,其一是匯編語言程序與 C語言程序所使用的存儲模式必須為一致的;其二是匯編語言程序需支持 C語言程序的命名要求,在連接和使用之前需擬定兼容合約,由于匯編語言程序的特點較為明顯,所以編程中函數及變量的命名一般以 C語言程序的要求為準,匯編語言程序必須嚴格遵守約定。

C語言程序中主要涵蓋了六種形式的存儲模式,分別為微型存儲模式、小型存儲模式、中型存錯模式、緊湊型存儲模式、大型存儲模式以及巨型存儲模式,由此可見,存儲模式主要由空間和大小區分。其中微型存儲模式中的程序和堆棧均處于相同段內;小型存儲模式具有數據和代碼段,實際數量均為一個。如要進行混合編程,必須確保兩個程序使用相同的存儲模式。對于匯編語言而言,Model代表此程序所用的偽指令,而后需所接內容即為存儲模式,一般為上述模式的其中一種。如果 C語言程序使用了小型存儲模式,在匯編語言中將會表現為Model Small,此時兩種程序所用存儲模式為統一類型。由于小型存儲模式采用Near作為基礎指針,所以該存儲模式具有較高的運行效率,因此在實際的混合編程情況中,應在條件滿足的情況下盡可能選用小型存儲模式。

C語言程序的編譯過程中,程序中變量及函數名稱的下方會被添加一道下劃線,為確保連接質量,在調用子程序中,任意一種標示符的都需添加下劃線。從C語言程序的角度講,其會對調用對象中具體變量與函數予以偽命令,以此達到說明的目的,通常將命令放置在函數與變量的外部。另外,為了保存匯編語言程序中完整的標示符,還需使用PUBLIC操作符對指定標示符進行定義。如果匯編語言程序需使用 C語言程序中的函數,需要在所選函數的名稱前添加下劃線,同時在程序開始階段運用EXTERN語句進行說明,如圖2所示。

圖2 匯編語言程序訪問C語言程序函數

6 總結

總之,匯編語言與 C語言的充分融合,打破了單一語言程序編程的局限性,兩種語言程序的特點均可得到充分的發揮,并在運行的過程中相互協調,通過參數傳遞功能,還可實現數據信息的共享,從而為相關軟件的開發提供良好的保障,使其更加安全可靠,推動了編程事業的全面快速發展。

表1 GPU與CPU下視頻編碼時間表

5 結束語

本系統為GOP級的并行編碼算法,它利用可編程GPU以及相應的計算統一設備架構CUDA對基于AVS標準的編碼器進行加速,實現了一個基于GPU的AVS并行編碼器。與基于CPU上的AVS并行編碼器相比,它在保證了視頻圖像質量同時,也在很大程度上提高了編碼的速率。

[1] 王濤.AVS視頻解碼器C語言建模研究[D].天津:天津大學,2008.

[2] 陳志波.H.264運動估值4網絡視頻傳輸關鍵問題研究[D].北京:清華大學,2003.

[3] 甘新標,沈立,王志英.基于CUDA的并行全搜索運動估計算法[J].計算機輔助設圖形學學報,2010,22(3):457-460.

[4] 張舒,褚艷利.GPU高性能運算之CUDAIM〕[M].北京:中國水利水電出版社,2009:2-141.

[5] AVS工作組.視頻編碼標準 AVS 技術介紹[J].電子產品世界,2005,(10):58-62.

[6] 蔣興昌,周軍,羅傳飛.H.264 并行編碼算法的研究[J].電視技術,2008,32(2):33-35.

Discussion about assembly language and C language programming techniques mixed

Assembly language is actually a form of language for the machine, with fast speed and less storage space, under certain conditions, the direct control of the hardware, in a variety of fields have been widely used and has to close important role. However, in the actual writing and debugging session, the difficulty and complexity are great, especially the hybrid operation links. C language with a high degree of flexibility and skills in software development aspects, the use of assembly language and C language programming mixed technology, not only can effectively solve the problems single-use assembly language processing the data, but also a substantial increase in the actual operating efficiency. Paper describes two specific methods of mixed programming languages, as well as the connection between the two in question should be noted, to lay the foundation for the promotion and application of hybrid programming techniques.

Assembly language; C language; hybrid programming

TP313

A

1008-1151(2015)02-0016-03

2015-01-11

蔣仁祥(1967-),福建平潭人,福建師范大學數學和計算機學院講師,研究方向為高校計算機教學。

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 在线观看国产精美视频| 国产拍揄自揄精品视频网站| 中文字幕av一区二区三区欲色| 中文字幕在线观看日本| 午夜日本永久乱码免费播放片| 欧美精品高清| 久久久久88色偷偷| 91精选国产大片| 亚洲国产天堂久久综合| 国产三区二区| 四虎永久免费地址| 深夜福利视频一区二区| 四虎影视无码永久免费观看| 亚洲日韩AV无码一区二区三区人| 伊人五月丁香综合AⅤ| 午夜国产精品视频黄| 亚洲国产一成久久精品国产成人综合| 无码中文AⅤ在线观看| 国产精品久久精品| 99热这里都是国产精品| 日韩免费毛片| 97国产精品视频人人做人人爱| 亚洲日韩精品欧美中文字幕 | 国产成人精品视频一区二区电影| 亚洲人成亚洲精品| 日韩一级二级三级| 国产麻豆精品久久一二三| 日日噜噜夜夜狠狠视频| 亚洲av中文无码乱人伦在线r| 91在线视频福利| 色欲色欲久久综合网| 国产精品久线在线观看| 人妻21p大胆| 五月天综合网亚洲综合天堂网| 国产xxxxx免费视频| 全午夜免费一级毛片| 又猛又黄又爽无遮挡的视频网站| 亚洲综合狠狠| 美女一区二区在线观看| 久久久久久久蜜桃| 成人久久精品一区二区三区| 国产精品视频导航| 免费A级毛片无码无遮挡| 日韩在线网址| 91小视频在线| 无码精品国产dvd在线观看9久 | 免费可以看的无遮挡av无码| 欧美日韩理论| 国产在线观看精品| 福利在线不卡一区| 国产手机在线小视频免费观看| 91久久精品国产| 亚洲天堂区| 凹凸国产分类在线观看| 免费人成黄页在线观看国产| 国产嫖妓91东北老熟女久久一| 国产成人区在线观看视频| 亚洲综合色吧| 亚洲精品欧美日本中文字幕| 2022国产无码在线| 亚洲欧美一级一级a| 香蕉伊思人视频| 婷婷色在线视频| 四虎国产永久在线观看| 亚洲第一天堂无码专区| 欧美精品aⅴ在线视频| 真实国产精品vr专区| 国产又爽又黄无遮挡免费观看| 国产香蕉一区二区在线网站| 国产熟睡乱子伦视频网站| 免费激情网站| 在线观看精品国产入口| 国产欧美专区在线观看| 2021国产精品自产拍在线观看| 国产毛片高清一级国语| 国产白浆在线观看| 精品久久高清| 日韩欧美网址| 亚洲国产系列| h视频在线观看网站| 国产www网站| 亚洲人视频在线观看|