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

Windows下MASM集成匯編系統(tǒng)的研究與開(kāi)發(fā)

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

摘要:為了方便教學(xué),讓學(xué)生盡快掌握匯編語(yǔ)言程序設(shè)計(jì)的方法,開(kāi)發(fā)了基于VC++的Windows下MASM集成匯編系統(tǒng),該系統(tǒng)集成了微機(jī)匯編語(yǔ)言主要調(diào)試工具,實(shí)現(xiàn)了編程、編譯、聯(lián)接和動(dòng)態(tài)調(diào)試等功能的一體化。實(shí)踐證明:MASM集成匯編系統(tǒng)界面友好、操作方便,有較好的應(yīng)用價(jià)值。

關(guān)鍵詞:匯編語(yǔ)言;微機(jī);教學(xué);Visual C++;Windows

中圖分類號(hào):G640文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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 引言

匯編語(yǔ)言的優(yōu)點(diǎn)是速度快,可以直接對(duì)硬件進(jìn)行操作,這對(duì)諸如圖形處理等關(guān)鍵應(yīng)用是非常重要的。作為最基本的編程語(yǔ)言之一,匯編語(yǔ)言雖然應(yīng)用的范圍不算很廣,但重要性卻勿庸置疑,因?yàn)樗軌蛲瓿稍S多其它語(yǔ)言所無(wú)法完成的功能。但是,現(xiàn)有的宏匯編編譯工具主要還是工作在DOS環(huán)境中,雖然DVCC-8086H開(kāi)發(fā)環(huán)境是Windows,但軟件不能獨(dú)立運(yùn)行,必須連接仿真設(shè)備才行。該文運(yùn)用Visual C++開(kāi)發(fā)了一種Windows下MASM集成匯編系統(tǒng)。

2 系統(tǒng)主要功能及其實(shí)現(xiàn)

Windows下MASM集成匯編系統(tǒng)主要實(shí)現(xiàn)以下功能:

1)能在該系統(tǒng)中編寫程序并可以對(duì)程序進(jìn)行編輯、保存、打印,自動(dòng)提供微機(jī)匯編語(yǔ)言程序的分段框架結(jié)構(gòu);

2)對(duì)ASM文件進(jìn)行編譯,可運(yùn)用指令ShellExecute(NULL,\"open\",\" masm.exe的全路徑名\",m_strCmd,NULL,SW_HIDE)調(diào)用masm.exe應(yīng)用程序完成編譯功能。為了方便用戶,編譯之后自動(dòng)跳出編譯結(jié)果,還可以通過(guò)查詢List文件和Cross文件修改程序中的錯(cuò)誤,為了邊看文件邊修改錯(cuò)誤,將List文件和Cross文件的對(duì)話框設(shè)置成非模態(tài)對(duì)話框;

3)對(duì)OBJ文件進(jìn)行聯(lián)接,調(diào)用link.exe文件,聯(lián)接后顯示提示信息;

4)對(duì)EXE文件或COM文件進(jìn)行動(dòng)態(tài)調(diào)試;

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

6)其它設(shè)置。如字體設(shè)置,新建窗口、層疊、平鋪和排列圖標(biāo)等窗口的設(shè)置,左縮進(jìn)設(shè)置等。

下面重點(diǎn)討論啟動(dòng)界面和編譯功能的實(shí)現(xiàn)方法。

2.1 啟動(dòng)界面的實(shí)現(xiàn)

啟動(dòng)界面如圖1所示。應(yīng)用VC++制作系統(tǒng)啟動(dòng)畫面基本步驟如下:

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

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

3)在資源中插入點(diǎn)陣圖資源。打開(kāi)VC++的資源編輯器,用鼠標(biāo)右鍵按一下Resources文件夾,選擇Import命令,插入所制作的點(diǎn)陣圖。如果點(diǎn)陣圖超過(guò)256色,VC++會(huì)彈出對(duì)話框,提示點(diǎn)陣圖已經(jīng)插入但不能在點(diǎn)陣圖編輯器中顯示,將點(diǎn)陣圖ID改為IDB_SPLASH。

4)添加Splash Screen控件。選擇菜單“project”/“Add To Project”/“Conponents and Controls”打開(kāi)對(duì)話框,在對(duì)話框中連續(xù)按兩下\"Visual C++ Conponents\"選項(xiàng),選擇“Splash Screen”控件,然后按一下“Insert”。 確認(rèn)或修改類名和點(diǎn)陣圖資源ID,按OK確認(rèn)。 選擇、連接后,啟動(dòng)畫面就顯示出來(lái)了。

5)如果需要改變啟動(dòng)畫面的停留時(shí)間,就修改SetTimer()函數(shù)的第二個(gè)參數(shù),默認(rèn)是750毫秒。

int CSplashWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)

{ SetTimer(1, 750, NULL); //修改第二個(gè)參數(shù)以調(diào)整畫面停留時(shí)間

return 0;}

2.2 編譯功能的實(shí)現(xiàn)

實(shí)現(xiàn)編譯功能的部分程序如下:

//編譯子函數(shù),調(diào)用masm.exe

void CChildView::masm(CString lpfilename)

{

//構(gòu)造全路徑命令行參數(shù)

……

//調(diào)用masm.exe進(jìn)行編譯

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

m_strRunFileName = filename;

//將文件名保存以便連接和運(yùn)行使用

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

Sleep(200);

BuildDlg();//彈出編譯結(jié)果匯報(bào)對(duì)話框

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

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

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

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

}

編譯完之后自動(dòng)彈出對(duì)話框,顯示匯編結(jié)果,程序如下。

//彈出對(duì)話框子函數(shù)

void CChildView::BuildDlg()

{

CReportDlg m_ReportDlg;

CString m_strRunFileLst;

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

m_strRunFileLst += \".lst\";//加上擴(kuò)展名LST以便尋找并打開(kāi)LST文件

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

char* showBuf;

DWORD Buflen;

Buflen = file1.GetLength();

showBuf = new char[Buflen+1];

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

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

CString m_strResult = showBuf;

m_ReportDlg.m_strReport= \"\\r\ 匯編總結(jié)報(bào)告:\\r\\";

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

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

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

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

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

UpdateData();

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

delete showBuf; //釋放緩存變量

}

3 結(jié)束語(yǔ)

該文用C++實(shí)現(xiàn)了MASM集成匯編系統(tǒng),介紹了該系統(tǒng)的主要功能,重點(diǎn)給出了啟動(dòng)界面、編譯功能的實(shí)現(xiàn)方法和部分程序。該系統(tǒng)的應(yīng)用,消除了調(diào)試匯編語(yǔ)言程序時(shí)切換到DOS的麻煩,使學(xué)生學(xué)習(xí)匯編語(yǔ)言程序設(shè)計(jì)變得輕松愉快!

參考文獻(xiàn):

[1] 蘇建元.主動(dòng)學(xué)習(xí)——想學(xué)習(xí)?會(huì)學(xué)習(xí)?不斷學(xué)習(xí)[J].計(jì)算機(jī)教育,2007,(2):60-62.

[2] 蘇建元.大學(xué)計(jì)算機(jī)硬件技術(shù)課程啟發(fā)式教學(xué)要點(diǎn)[J].計(jì)算機(jī)教育(增),2005,(12):82-83.

[3] 蘇建元.計(jì)算機(jī)學(xué)習(xí)中邏輯思維和系統(tǒng)思維能力的培養(yǎng)[J].電腦知識(shí)與技術(shù)(學(xué)術(shù)交流),2007,(2):585-586.

主站蜘蛛池模板: 国产情侣一区二区三区| 色综合激情网| 欧美一级视频免费| 日韩无码黄色| 亚洲欧洲日韩国产综合在线二区| 久久这里只有精品国产99| 国产男女XX00免费观看| 91原创视频在线| 国产精品30p| 国产自无码视频在线观看| 在线播放真实国产乱子伦| 一级毛片在线免费视频| 午夜啪啪网| 欧美v在线| 亚洲欧美成人在线视频| 色婷婷成人网| 538国产在线| 国产老女人精品免费视频| 国产成人福利在线| 五月婷婷综合色| 亚洲AV电影不卡在线观看| 激情五月婷婷综合网| 亚洲精品日产AⅤ| 九九久久精品国产av片囯产区| 亚洲欧美国产视频| 免费一级无码在线网站| 亚洲欧美激情小说另类| 亚洲乱亚洲乱妇24p| 尤物成AV人片在线观看| 无码粉嫩虎白一线天在线观看| 免费看美女自慰的网站| 国产成人高清精品免费软件| 国产成人久视频免费| 熟妇人妻无乱码中文字幕真矢织江| 中文字幕中文字字幕码一二区| 亚洲国产精品久久久久秋霞影院| 国产黄网站在线观看| 啪啪国产视频| 国产福利免费在线观看| 毛片在线区| 国产成人免费视频精品一区二区| 漂亮人妻被中出中文字幕久久| 日韩国产亚洲一区二区在线观看| 国产成人AV综合久久| 欧美在线导航| 国产在线观看人成激情视频| 亚洲人成影院午夜网站| 99这里精品| 91国内外精品自在线播放| 亚洲综合色婷婷中文字幕| 一级毛片在线播放免费观看| 成人国内精品久久久久影院| 91精品国产综合久久不国产大片| 亚洲欧美精品一中文字幕| 亚洲热线99精品视频| 亚洲男人的天堂久久香蕉| 99久视频| 亚洲无码熟妇人妻AV在线| 中文一区二区视频| 亚洲久悠悠色悠在线播放| 国产精品视频999| 午夜激情福利视频| 国产迷奸在线看| 欧美天堂久久| 欧美a在线视频| 91国内在线视频| 秋霞午夜国产精品成人片| 国产免费久久精品44| 三上悠亚精品二区在线观看| 呦视频在线一区二区三区| 国产电话自拍伊人| 精品视频免费在线| 高清视频一区| 欧美日韩中文国产va另类| 91亚洲精选| 无码精品国产VA在线观看DVD| 福利一区在线| 国产尤物jk自慰制服喷水| 国产精品无码久久久久久| 国产网友愉拍精品视频| 老司国产精品视频| 亚洲精品自拍区在线观看|