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

Windows下MASM集成匯編系統的研究與開發

2008-12-31 00:00:00蘇建元王玲玲梁紅艷
電腦知識與技術 2008年23期

摘要:為了方便教學,讓學生盡快掌握匯編語言程序設計的方法,開發了基于VC++的Windows下MASM集成匯編系統,該系統集成了微機匯編語言主要調試工具,實現了編程、編譯、聯接和動態調試等功能的一體化。實踐證明:MASM集成匯編系統界面友好、操作方便,有較好的應用價值。

關鍵詞:匯編語言;微機;教學;Visual C++;Windows

中圖分類號:G640文獻標識碼:A文章編號:1009-3044(2008)23-966-03

The Research and Development of MASM Integrated Assemble System in Windows

SU Jian-yuan, FANG Jian, WANG Ling-ling, LIANG Hong-yan, ZHAO Xin

(College of Electrical Engineering,Hehai University, Nanjing 210024, China)

Abstract: In order to satisfy the need of teaching and let students study the programs design method of assembly language, developed MASM integrated assemble system in windows based on VC++. This system included main debugging tools of microcomputer assembly language and its interface is friendly, its operation is simple. It has better application values.

Key words: Assembly language; microcomputer; teaching; visual C++; Windows

1 引言

匯編語言的優點是速度快,可以直接對硬件進行操作,這對諸如圖形處理等關鍵應用是非常重要的。作為最基本的編程語言之一,匯編語言雖然應用的范圍不算很廣,但重要性卻勿庸置疑,因為它能夠完成許多其它語言所無法完成的功能。但是,現有的宏匯編編譯工具主要還是工作在DOS環境中,雖然DVCC-8086H開發環境是Windows,但軟件不能獨立運行,必須連接仿真設備才行。該文運用Visual C++開發了一種Windows下MASM集成匯編系統。

2 系統主要功能及其實現

Windows下MASM集成匯編系統主要實現以下功能:

1)能在該系統中編寫程序并可以對程序進行編輯、保存、打印,自動提供微機匯編語言程序的分段框架結構;

2)對ASM文件進行編譯,可運用指令ShellExecute(NULL,\"open\",\" masm.exe的全路徑名\",m_strCmd,NULL,SW_HIDE)調用masm.exe應用程序完成編譯功能。為了方便用戶,編譯之后自動跳出編譯結果,還可以通過查詢List文件和Cross文件修改程序中的錯誤,為了邊看文件邊修改錯誤,將List文件和Cross文件的對話框設置成非模態對話框;

3)對OBJ文件進行聯接,調用link.exe文件,聯接后顯示提示信息;

4)對EXE文件或COM文件進行動態調試;

5)啟動畫面中顯示軟件名稱和版權等提示信息,使用動畫可以減少等待程序加載過程中的枯燥感;

6)其它設置。如字體設置,新建窗口、層疊、平鋪和排列圖標等窗口的設置,左縮進設置等。

下面重點討論啟動界面和編譯功能的實現方法。

2.1 啟動界面的實現

啟動界面如圖1所示。應用VC++制作系統啟動畫面基本步驟如下:

1)用Photoshop等工具制作啟動畫面圖象,保存為bmp格式。

2)用Appwizard建一個基于單文檔的Splash。

3)在資源中插入點陣圖資源。打開VC++的資源編輯器,用鼠標右鍵按一下Resources文件夾,選擇Import命令,插入所制作的點陣圖。如果點陣圖超過256色,VC++會彈出對話框,提示點陣圖已經插入但不能在點陣圖編輯器中顯示,將點陣圖ID改為IDB_SPLASH。

4)添加Splash Screen控件。選擇菜單“project”/“Add To Project”/“Conponents and Controls”打開對話框,在對話框中連續按兩下\"Visual C++ Conponents\"選項,選擇“Splash Screen”控件,然后按一下“Insert”。 確認或修改類名和點陣圖資源ID,按OK確認。 選擇、連接后,啟動畫面就顯示出來了。

5)如果需要改變啟動畫面的停留時間,就修改SetTimer()函數的第二個參數,默認是750毫秒。

int CSplashWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)

{ SetTimer(1, 750, NULL); //修改第二個參數以調整畫面停留時間

return 0;}

2.2 編譯功能的實現

實現編譯功能的部分程序如下:

//編譯子函數,調用masm.exe

void CChildView::masm(CString lpfilename)

{

//構造全路徑命令行參數

……

//調用masm.exe進行編譯

ShellExecute(NULL,\"open\",strCmdLine,m_strCmd,NULL,SW_HIDE);

m_strRunFileName = filename;

//將文件名保存以便連接和運行使用

//等待0.1秒,等待匯編完成,產生*.CRF、 *.OBJ、 *.LST文件

Sleep(200);

BuildDlg();//彈出編譯結果匯報對話框

m_ListMenu = TRUE; //使能“查看LIST文件”菜單

m_CrossMenu = TRUE;//使能“查看CROSS文件”菜單

m_LinkMenu = TRUE; //使能“連接”菜單

//這時的菜單查看LIST文件、查看CROSS文件和連接都變黑。如圖2所示。

}

編譯完之后自動彈出對話框,顯示匯編結果,程序如下。

//彈出對話框子函數

void CChildView::BuildDlg()

{

CReportDlg m_ReportDlg;

CString m_strRunFileLst;

m_strRunFileLst = m_strRunFileName; //獲取被編譯文件的文件名

m_strRunFileLst += \".lst\";//加上擴展名LST以便尋找并打開LST文件

CFile file1(m_strRunFileLst,CFile::modeRead);//以讀方式打開LST文件

char* showBuf;

DWORD Buflen;

Buflen = file1.GetLength();

showBuf = new char[Buflen+1];

file1.Read(showBuf,Buflen); //讀出LST文件內容

file1.Close();//關閉LST文件

CString m_strResult = showBuf;

m_ReportDlg.m_strReport= \"\\r\ 匯編總結報告:\\r\\";

m_ReportDlg.m_strReport += m_strResult.Right(174); //截取文件最后幾行的編譯結果

m_ReportDlg.m_strReport +=\"\\r\\";

m_ReportDlg.m_strReport +=\"\\r\\";

m_ReportDlg.m_strReport +=\"\\r\\"; //加兩空白行,使背景面積擴大

m_ReportDlg.SetTitleName(\"Assembling Report\");

UpdateData();

m_ReportDlg.DoModal();//彈出編譯結果對話框

delete showBuf; //釋放緩存變量

}

3 結束語

該文用C++實現了MASM集成匯編系統,介紹了該系統的主要功能,重點給出了啟動界面、編譯功能的實現方法和部分程序。該系統的應用,消除了調試匯編語言程序時切換到DOS的麻煩,使學生學習匯編語言程序設計變得輕松愉快!

參考文獻:

[1] 蘇建元.主動學習——想學習?會學習?不斷學習[J].計算機教育,2007,(2):60-62.

[2] 蘇建元.大學計算機硬件技術課程啟發式教學要點[J].計算機教育(增),2005,(12):82-83.

[3] 蘇建元.計算機學習中邏輯思維和系統思維能力的培養[J].電腦知識與技術(學術交流),2007,(2):585-586.

主站蜘蛛池模板: 精品一区二区三区视频免费观看| 国产在线视频二区| 尤物成AV人片在线观看| 波多野结衣的av一区二区三区| 99re视频在线| 日韩精品少妇无码受不了| 特级做a爰片毛片免费69| 中日无码在线观看| 亚洲视频免费在线| 色AV色 综合网站| 国产欧美视频一区二区三区| 综合色婷婷| 国产91精品调教在线播放| 亚洲午夜18| 国产精品9| 日韩第一页在线| 亚洲国产日韩欧美在线| 91亚洲视频下载| 亚洲国产精品一区二区高清无码久久| 五月婷婷综合在线视频| 欧洲一区二区三区无码| 538国产视频| 少妇精品网站| 亚洲va视频| 小说 亚洲 无码 精品| 五月天香蕉视频国产亚| 黄色网站在线观看无码| 亚洲成年网站在线观看| 少妇露出福利视频| 中文字幕人妻无码系列第三区| 亚洲成av人无码综合在线观看| 国产尹人香蕉综合在线电影| 人妻精品全国免费视频| 国产成人啪视频一区二区三区| 精品国产成人av免费| 国产精品吹潮在线观看中文| 亚洲男人在线| 国产精品无码久久久久AV| 日韩123欧美字幕| 白浆视频在线观看| 久久精品无码国产一区二区三区| 久久综合色88| 中国国产高清免费AV片| 亚洲美女高潮久久久久久久| 亚洲人成网站观看在线观看| 日本影院一区| 露脸国产精品自产在线播| 欧美性爱精品一区二区三区| 欧美日韩综合网| 国产91麻豆免费观看| 韩国自拍偷自拍亚洲精品| 亚洲三级a| 国产精品永久不卡免费视频| 午夜电影在线观看国产1区| 成人精品视频一区二区在线| 久久狠狠色噜噜狠狠狠狠97视色| 91免费片| 亚洲成av人无码综合在线观看| 国产精品香蕉| 乱系列中文字幕在线视频| 久久精品这里只有精99品| 日韩欧美中文字幕在线韩免费| 91视频首页| 亚洲成AV人手机在线观看网站| 第一页亚洲| 97在线国产视频| 午夜福利网址| 91在线播放免费不卡无毒| 欧美激情视频一区二区三区免费| 亚洲欧洲日产国码无码av喷潮| 亚洲精品无码AⅤ片青青在线观看| 高潮毛片无遮挡高清视频播放| 亚洲看片网| 欧美不卡视频一区发布| 最新午夜男女福利片视频| 午夜天堂视频| a色毛片免费视频| 欧美人在线一区二区三区| 97久久超碰极品视觉盛宴| 免费高清自慰一区二区三区| 影音先锋亚洲无码| 亚洲一本大道在线|