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

        ?

        基于VB的匯編語言集成開發(fā)工具設(shè)計

        2015-07-31 21:13:47張景元
        實驗技術(shù)與管理 2015年1期
        關(guān)鍵詞:重定向匯編語言調(diào)用

        張景元, 任 菡

        (山東理工大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院, 山東 淄博 255049)

        基于VB的匯編語言集成開發(fā)工具設(shè)計

        張景元, 任 菡

        (山東理工大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院, 山東 淄博 255049)

        針對匯編程序、連接程序和錯誤調(diào)試程序只能在DOS操作系統(tǒng)上運行的缺點,利用可視化軟件開發(fā)工具研發(fā)了運行于Windows的匯編語言集成開發(fā)工具,實現(xiàn)了匯編語言源程序的匯編、連接和調(diào)試等功能。全部程序模塊、DLL文件及幫助文檔都集成打包為可安裝的SETUP文件包,便于安裝使用。運行結(jié)果證明,軟件功能齊全,界面友好,操作方便。

        匯編語言; 集成開發(fā)環(huán)境; 數(shù)據(jù)管道; 重定向; API函數(shù)

        匯編語言是一種面向機(jī)器的低級語言,可深入到計算機(jī)底層對硬件進(jìn)行操作。雖然C語言亦可對計算機(jī)硬件進(jìn)行操作,但功能有限,無法替代匯編語言。用匯編語言編寫的程序占用內(nèi)存空間小、運行速度快,高級語言所能實現(xiàn)的功能,匯編語言皆可以實現(xiàn),而匯編語言能實現(xiàn)的功能,高級語言則無法全部實現(xiàn)。因此,盡管高級語言的功能越來越強(qiáng)大,開發(fā)平臺越來越好,但在用高級語言開發(fā)應(yīng)用軟件時,有時不得不借助于匯編語言編寫某些模塊,或直接將代碼插入其中,或以動態(tài)連接庫的形式供其調(diào)用。不僅如此,從教學(xué)的角度看,通過匯編語言的學(xué)習(xí)和實踐,才能夠充分了解CPU及其各接口芯片的工作原理、數(shù)據(jù)傳送方式等。因此,匯編語言仍然是計算機(jī)專業(yè)的必修課程之一,也是某些專業(yè)微機(jī)原理課程所涉及的重要內(nèi)容。

        然而自Windows推出以后,關(guān)于DOS命令的教材已很少,在教學(xué)中對DOS命令的介紹也是簡而又簡,甚至忽略。但EDIT、MASM5.0、LINK、DEBUG等都是基于DOS平臺的,對源程序的編輯、匯編,目標(biāo)文件的連接、調(diào)試等皆分散進(jìn)行,操作遠(yuǎn)不如高級語言集成開發(fā)環(huán)境方便。為方便教學(xué),筆者開發(fā)了運行于Windows平臺的匯編語言集成開發(fā)工具軟件IDE(integrated development environment)。

        1 設(shè)計方案

        VB(Visual Basic)是基于Windows的通用開發(fā)工具,控件多、種類全、API庫函數(shù)豐富,廣泛用于開發(fā)大型應(yīng)用軟件或控制軟件的前臺程序。閆民亮基于VB設(shè)計了網(wǎng)絡(luò)運行狀態(tài)監(jiān)控程序[1],劉銀、桂曉兵利用VB開發(fā)了溫度監(jiān)控系統(tǒng)的前臺程序[2-3],余文坤、王建軍等將VB用于全球衛(wèi)星導(dǎo)航系統(tǒng)數(shù)據(jù)及地形圖數(shù)據(jù)的處理軟件設(shè)計[4-6],文獻(xiàn)[7-8]介紹了VB與Fortran、Matlab混合編程的接口方法,丁蓉則就“VB程序設(shè)計”課程的創(chuàng)新性實驗進(jìn)行了有益的探索[9]。本文將VB用于匯編語言集成開發(fā)環(huán)境IDE的設(shè)計,其中文本編輯器和調(diào)試平臺等基于VB實現(xiàn),將運行于DOS下的Masm、Link 和Debug作為IDE的模塊掛接在后臺運行,利用Windows管道技術(shù)和DOS命令重定向技術(shù)傳送Masm、Link和Debug調(diào)用、運行結(jié)果等相關(guān)信息。IDE的組成結(jié)構(gòu)如圖1所示。

        圖1 IDE組成結(jié)構(gòu)

        2 實現(xiàn)過程

        2.1 源程序編輯

        首先設(shè)計實現(xiàn)一個文本編輯器,用來編輯匯編語言源程序文件,它也是呈現(xiàn)給用戶的主要界面,需具備文本編輯的所有功能。在編輯過程中能顯示光標(biāo)所在的行列位置,能進(jìn)行復(fù)制、剪切、粘貼操作,能打開已有的文件,關(guān)閉、保存正在編輯的文件,能新建文件、打印文件等。

        編輯窗口利用功能較強(qiáng)的RichTextBo控件產(chǎn)生。調(diào)用API函數(shù)Process()和SendMessage()捕獲當(dāng)前光標(biāo)所在位置的行列值,利用Clipboard.SetText和Clipboard.GetText實現(xiàn)復(fù)制、粘貼功能?!安檎摇睂υ捒蚴菫榉奖阈薷亩O(shè),可查找正在編輯的源程序文件中的任何字符。打印源程序文件是利用dlgCommonDialog.ShowPrinter實現(xiàn)的;新建文件、打開文件、保存文件的功能則通過調(diào)用公共對話框來實現(xiàn),保存的文件默認(rèn)后綴為“.asm”。其他編輯器的選單(菜單)以及各工具按鈕的代碼不一一列出。編輯器運行界面如圖2所示,與Windows風(fēng)格完全一致。

        圖2 編輯器界面

        2.2 匯編模塊

        匯編過程是通過調(diào)用Masm5.0實現(xiàn)的,匯編時自動運行Masm.exe文件,將源程序文件匯編成目標(biāo)代碼文件,默認(rèn)后綴為“.obj”,同時將匯編信息顯示在信息框中。通過Shell調(diào)用系統(tǒng)內(nèi)部命令模塊command.com/c(加參數(shù)/c以結(jié)束調(diào)用返回)調(diào)用Masm,通過管道“|”對源程序文件進(jìn)行匯編,匯編結(jié)果通過重定向“>>”輸出。Shell函數(shù)返回一個進(jìn)程ID號,再通過OpenProcess函數(shù)返回該進(jìn)程的句柄,若獲得該句柄,調(diào)用WaitForSingleObject函數(shù)等待結(jié)束信號,最后調(diào)用CloseHandle關(guān)閉句柄。產(chǎn)生輸出文件需要將無用的中間信息刪除,InStr函數(shù)為返回源串中指定無用字符串的位置,用Left和Mid函數(shù)截去無用的部分。為了顯示美觀,StrConv函數(shù)將指定字符串轉(zhuǎn)換為每個詞頭字母大寫。運行結(jié)果如圖3所示。

        圖3 運行結(jié)果

        部分代碼如下:

        pId = Shell( ″command.com /c type _ input.txt|masm>output.txt″) pHnd = OpenProcess(SYNCHRONIZE, 0, pId) If pHnd <> 0 Then Call WaitForSingleObject(pHnd, INFINITE) Call CloseHandle(pHnd) End If Open ″output.txt″ For Input As #1 While Not EOF(1) Line Input #1, S If S <> ″″ Then S = S & vbCrLf res = S Do While InStr(res, ″Source filename [.ASM]:″) i=InStr(res, ″Source filename [.ASM]:″) res=Left(res, i-1) & Mid(res, i + 103) Loop S=res S=StrConv(S, vbProperCase) msgwin.SelColor = &HC00000 msgwin.SelText = S End If Wend

        2.3 鏈接過程

        將匯編生成的“*.OBJ”類型的目標(biāo)文件保存為lk.txt文件,lk.txt作為DOS命令下Link程序的管道輸入端,再重定向,將結(jié)果輸出到lko.txt文件里,最后將其輸出到文本編輯器的信息窗口中。部分代碼如下:

        pId=Shell(″command.com/c type lk.txt|link>lko.txt″) pHnd = OpenProcess(SYNCHRONIZE, 0, pId) If pHnd <> 0 Then Call WaitForSingleObject(pHnd, INFINITE) Call CloseHandle(pHnd) End If Open ″lko.txt″ For Input As #1 While Not EOF(1) Line Input #1, S If S <> ″″ Then S=StrConv(S, vbProperCase) S=S & vbCrLf msgwin.SelColor = &HC00000 msgwin.SelText = S End If Wend

        點擊源程序匯編后的錯誤信息框,會自動高亮顯示對應(yīng)的錯誤所在行,以便于查找錯誤。匯編、鏈接過程沒有錯誤時,可以運行程序并查看運行結(jié)果。

        編輯器的選單條中設(shè)有一個運行選項,單擊此項可以同時完成匯編、鏈接、運行的全部過程,若存在錯誤,在匯編時就會顯示在信息框中。

        2.4 單步、斷點、反匯編

        通過調(diào)用Microsoft公司的Debug程序?qū)崿F(xiàn)斷點設(shè)置、單步運行調(diào)試、反匯編等功能,具體做法是將一連串命令編寫成類似批處理文件的S1.txt文件,然后重定向到文件S1o.txt,最后在信息窗口中顯示出來。斷點同樣利用Debug的參數(shù)進(jìn)行設(shè)置,生成單步執(zhí)行輸入文件,也是用一個類似批處理的文件來實現(xiàn),用命令“RIP”更改確定開始運行的地址,用變量St輸入開始運行地址,命令“T”單步執(zhí)行,“Q”退出Debug。部分代碼如下:

        MST = ″單步運行″ MD = 0 BK = InputBox(MS, MST, MD, 100, 100) If Len(BK) = 0 Then Exit Sub End If St = CLng(BK) Open ″S1.txt″ For Output As #1 Print #1, ″RIP″ Print #1, St Print #1, ″T″ Print #1, ″Q″ Print #1, ″exit″ Close #1 pId = Shell(″command.com /c type _ S1.txt|debug fm.exe>S1o.txt″) pHnd = OpenProcess(SYNCHRONIZE, 0, pId) If pHnd <> 0 Then Call WaitForSingleObject(pHnd, INFINITE) Call CloseHandle(pHnd) End If Open ″S1o.txt″ For Input As #1 While Not EOF(1) Line Input #1, S

        2.5 幫助文檔

        一個完整的應(yīng)用軟件必須有在線幫助功能。本開發(fā)工具的具體做法是先將本IDE的使用方法寫成Word文檔,再利用工具軟件轉(zhuǎn)換成help.chm文件,在選單的幫助按鈕代碼中調(diào)用即可。

        3 結(jié)束語

        用打包工具將全部軟件和涉及的DLL文件打包制作成Setup安裝文件,安裝非常簡單。本設(shè)計方案既發(fā)揮了Windows平臺的優(yōu)勢,又使典型的“老軟件”得到了充分利用,而管道技術(shù)和重定向技術(shù)是很好的鏈接橋梁。從幾年的使用情況看,該軟件運行可靠,界面友好,增強(qiáng)了學(xué)生的學(xué)習(xí)興趣,提高了教學(xué)質(zhì)量。

        References)

        [1] 閆民亮.VB編程在數(shù)字化網(wǎng)絡(luò)維護(hù)中的應(yīng)用[J].硅谷,2013(18):117-118.

        [2] 劉銀,蓋書超,余楠,等.基于VB6.0的在線溫度檢測系統(tǒng)[J].儀表技術(shù)與傳感器,2013(8):41-43.

        [3] 桂曉兵,王燕昌,楊柳斌,等.基于VB與單片機(jī)干燥溫度測控系統(tǒng)的實現(xiàn)[J].貴州農(nóng)業(yè)科學(xué),2013,41(2):170-172.

        [4] 余文坤,戴吾蛟,楊哲.基于TEQC的GNSS數(shù)據(jù)質(zhì)量分析及預(yù)處理軟件的設(shè)計與實現(xiàn)[J].大地測量與地球動力學(xué),2010,30(5):81-85.

        [5] 王建軍,吳北平,馮健.TEQC和QCVIEW32在GPS觀測數(shù)據(jù)預(yù)處理中的應(yīng)用[J].工程地球物理學(xué)報,2010(7):634-638.

        [6] 孟現(xiàn)彪,史雅茹,馮禹,等.應(yīng)用VB實現(xiàn)地形圖數(shù)據(jù)格式轉(zhuǎn)換[J].測繪與空間地理信息,2012,35(10):196-198.

        [7] 李險峰.VB和Fortran混合編程在工程計算中的應(yīng)用[J].鍋爐技術(shù),2011,42(2):62-66.

        [8] 馬培勇,羅紅潤,周思柱.基于COM組件的MATLAB和VB混編方法在機(jī)械可靠性工程中的應(yīng)用[J].計算機(jī)應(yīng)用與軟件,2012,29(7):189-191.

        [9] 丁蓉,朱琳.“VB程序設(shè)計”課程的創(chuàng)新性實驗教學(xué)[J].實驗技術(shù)與管理,2012,29(8):163-165.

        Design of integrated development tool of assembly language based on VB

        Zhang Jingyuan, Ren Han

        (College of Compute Science and Technology , Shandong University of Technology, Zibo 255049, China)

        Aiming at the weakness of movement of editing collected material procedures, linking procedures, and mistaking to adjust the procedures, which can only operate on the DOS operation system, the exploitation can see to turn a software development tool to develop the language integrated development tool of editing collected materials of Windows. This article describes how to realize the functions of the source procedure editing, conjunction, and adjustment. All procedure modules, DDL documents and the help text files can integrate to pack to wrap for the SETUP document which can be installed, and easy to gearing use. The operational results show that the software function is well-found, the interface is friendly, and the operation is convenient.

        assembly language; integrated development environment; data piping; redirection; API function

        2014- 06- 10

        張景元(1955—),男,山東濟(jì)南,工學(xué)碩士,教授,研究生導(dǎo)師,主要研究方向為人工智能、模式識別和智能控制等.

        P273.4

        A

        1002-4956(2015)1- 0142- 03

        猜你喜歡
        重定向匯編語言調(diào)用
        高等學(xué)校計算機(jī)專業(yè)課程教學(xué)改革實踐——以匯編語言與接口技術(shù)課程為例
        核電項目物項調(diào)用管理的應(yīng)用研究
        匯編語言與C語言的混合程序設(shè)計技術(shù)研究
        電子制作(2019年10期)2019-06-17 11:45:16
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        解決安卓文件夾亂象
        重復(fù)壓裂裂縫重定向的措施研究
        提高《匯編語言程序設(shè)計》教學(xué)效率的思考與實踐
        4G偽基站的監(jiān)測定位與規(guī)避協(xié)同分析
        移動通信(2017年13期)2017-09-29 16:30:11
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        基于馬氏體重定向的鐵磁形狀記憶合金本構(gòu)理論分析
        国产成人精品免费久久久久| 国产女人高潮视频在线观看| 又大又粗又爽的少妇免费视频| 97久久久久人妻精品专区| 国产传媒在线视频| 色婷婷久色国产成人免费| 日本韩国亚洲三级在线| 国产精品三区四区亚洲av| 中文无码av一区二区三区| 少妇无码av无码专区| 九九免费在线视频| 国产日产免费在线视频 | 亚洲一区二区三区特色视频| 性色av无码中文av有码vr| 亚洲成年网站在线777| 一区二区三区国产亚洲网站| 精品国产亚洲av麻豆| 真多人做人爱视频高清免费| 99国产精品久久久蜜芽| 国产视频一区二区三区在线看| 国产av无毛无遮挡网站| 亚洲性久久久影院| 欧美一区二区三区红桃小说| 久久人妻AV无码一区二区| 男的和女的打扑克的视频| 国产亚洲精品在线视频| 久久久久久久波多野结衣高潮| 国产久热精品无码激情| 亚洲精品亚洲人成在线播放| 男人的av天堂狠狠操| 国产又色又爽的视频在线观看91| 亚洲av无码成人精品国产| 野花在线无码视频在线播放| 欧洲国产成人精品91铁牛tv| 日本不卡一区二区三区久久精品| 人妻 日韩 欧美 综合 制服| 国产毛片视频网站| 日韩av综合色区人妻| 99久久99久久久精品蜜桃| 亚洲中文字幕一区精品自拍| 女厕厕露p撒尿八个少妇|