匯編語言課程設(shè)計(jì)-打字練習(xí)_第1頁
匯編語言課程設(shè)計(jì)-打字練習(xí)_第2頁
匯編語言課程設(shè)計(jì)-打字練習(xí)_第3頁
匯編語言課程設(shè)計(jì)-打字練習(xí)_第4頁
匯編語言課程設(shè)計(jì)-打字練習(xí)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、學(xué) 號(hào): 課 程 設(shè) 計(jì)題 目打字練習(xí)教 學(xué) 院計(jì)算機(jī)學(xué)院專 業(yè)09計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí)09計(jì)科(1)班姓 名指導(dǎo)教師 2011年10月04日目 錄一 概述21背景分析及意義22. 課程設(shè)計(jì)的目的23. 課程設(shè)計(jì)的要求34匯編語言的介紹3二 總體方案設(shè)計(jì)51. 程序設(shè)計(jì)的整體設(shè)計(jì)思路52. 算法的整體設(shè)計(jì)思路63. 程序的主要特點(diǎn)6三 詳細(xì)設(shè)計(jì)71. 流程圖72. 主界面?zhèn)未a73等級(jí)界面?zhèn)未a84. 游戲界面?zhèn)未a85. 清屏子程序設(shè)計(jì)96.密碼程序設(shè)計(jì)107.宏代碼117.1在指定位置顯示彩色字符串117.2顯示背景117.3畫橫向邊框的宏127.4畫豎邊框的宏138.功能的進(jìn)一步完善1

2、38.1完善代碼一138.2完善代碼二148.3完善代碼三15四 運(yùn)行結(jié)果說明171.密碼界面圖:172.主界面圖:173.等級(jí)選擇界面:174.游戲界面:18五 課程設(shè)計(jì)總結(jié)20參考文獻(xiàn)22一 概述1背景分析及意義隨著計(jì)算機(jī)的不斷更新發(fā)展,計(jì)算機(jī)在各個(gè)領(lǐng)域的應(yīng)用越來越多,更多的軟件開發(fā)人員和相關(guān)技術(shù)人員在程序設(shè)計(jì)的過程中應(yīng)用匯編程序或編制匯編語言。而匯編語言作為計(jì)算機(jī)專業(yè)大學(xué)生必修課,每個(gè)作為本專業(yè)的學(xué)生對(duì)匯編的理解和學(xué)習(xí)就顯得尤為重要。匯編語言是計(jì)算機(jī)能夠提供用戶使用的最快而又最好最有效的與言,也是能夠利用計(jì)算機(jī)所有硬件特性并能直接控制硬件的唯一語言。因而,對(duì)程序的空間和時(shí)間要求很高的場(chǎng)合

3、,匯編語言的應(yīng)用就顯得必不可少了,一些直接控制硬件的應(yīng)用場(chǎng)合,則更是非用匯編語言不可了。打字練習(xí)程序設(shè)計(jì)課程設(shè)計(jì)是在教學(xué)實(shí)踐基礎(chǔ)上進(jìn)行的一次大型實(shí)驗(yàn),也是對(duì)該課程所學(xué)理論知識(shí)的深化和提高。因此,要求我們能綜合應(yīng)用所學(xué)知識(shí),設(shè)計(jì)與制造出具有較復(fù)雜功能的應(yīng)用系統(tǒng),并且在實(shí)驗(yàn)的基本技能方面上進(jìn)行一次全面的訓(xùn)練。通過具體的問題分析、設(shè)計(jì)、調(diào)試、運(yùn)行程序。在實(shí)際問題中鍛煉提高自己,增加了對(duì)本門課程內(nèi)容的理解,鍛煉了動(dòng)手能力。就這個(gè)程序具體而言:調(diào)用宏,顯示背景和主界面,通過選擇不同的選項(xiàng),可以進(jìn)入不同的界面;采用BIOS功能的中斷,可以在任何時(shí)候退出當(dāng)前所在的界面并通過選擇進(jìn)入其他的界面。這個(gè)程序最終通

4、過菜單所提示的信息選取所要進(jìn)入的界面,獲得所要的功能。2. 課程設(shè)計(jì)的目的(1) 能夠較全面地鞏固和應(yīng)用課堂中所學(xué)的基本理論和程序設(shè)計(jì)方法,能夠較熟練地完成匯編語言程序的設(shè)計(jì)和調(diào)試。(2) 培養(yǎng)綜合運(yùn)用所學(xué)知識(shí),獨(dú)立完成匯編程序課題的能力。(3) 培養(yǎng)勇于探索、嚴(yán)謹(jǐn)推理、實(shí)事求是、有錯(cuò)必改,用實(shí)踐來檢驗(yàn)理論,全方位考慮問題等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì)。(4) 提高對(duì)工作認(rèn)真負(fù)責(zé)、一絲不茍,對(duì)同學(xué)團(tuán)結(jié)友愛,協(xié)作攻關(guān)的基本素質(zhì)。(5) 培養(yǎng)從資料文獻(xiàn)、科學(xué)實(shí)驗(yàn)中獲得知識(shí)的能力,提高學(xué)生從別人經(jīng)驗(yàn)中找到解決問題的新途徑的悟性,初步培養(yǎng)工程意識(shí)和創(chuàng)新能力。(6) 對(duì)掌握知識(shí)的深度、運(yùn)用理論去處理問題的能

5、力、實(shí)驗(yàn)?zāi)芰?、課程設(shè)計(jì)能力、書面及口頭表達(dá)能力進(jìn)行考核。3. 課程設(shè)計(jì)的要求匯編語言是計(jì)算機(jī)能夠提供給用戶的最便捷和最有效的語言,也是能夠利用計(jì)算機(jī)所有硬件特性并能直接控制硬件的一種語言。通過這次實(shí)驗(yàn)要求我們:(1) 了解背景顏色的設(shè)置。(2) 了解清屏函數(shù)的用法。(3) 學(xué)會(huì)使用宏定義,宏過程,宏函數(shù)以及參數(shù)的調(diào)用。(4) 能夠熟練地使用BIOS功能或DOS功能的調(diào)用。(5) 學(xué)會(huì)用匯編語言編輯中斷程序。通過打字練習(xí)程序的編寫熟悉并掌握用匯編語言編程的方法與特點(diǎn),借此來比較高級(jí)語言與低級(jí)語言的優(yōu)缺點(diǎn),以便能更好的利用各種語言來開發(fā)應(yīng)用軟件,通過實(shí)際動(dòng)手能力的培養(yǎng),進(jìn)一步熟悉匯編語言的結(jié)構(gòu)和使

6、用方法,達(dá)到能夠獨(dú)立閱讀、編輯和調(diào)試具有一定規(guī)模的匯編語言程序的能力,能夠熟練運(yùn)用匯編語言的三大結(jié)構(gòu),進(jìn)一步掌握各種指令的功能,能掌握子程序的定義與調(diào)用,包括段間調(diào)用與段內(nèi)調(diào)用,以及正確運(yùn)用DEBUG命令,進(jìn)一步理解和掌握程序直接控制I/O方式。4匯編語言的介紹 匯編語言(Assembly Language)是面向機(jī)器的程序設(shè)計(jì)語言,匯編語言是一種功能很強(qiáng)的程序設(shè)計(jì)語言,也是利用計(jì)算機(jī)所有硬件特性并能直接控制硬件的語言。在匯編語言中,用助記符(Mnemonic)代替操作碼,用地址符號(hào)(Symbol)或標(biāo)號(hào)(Label)代替地址碼。這樣用符號(hào)代替機(jī)器語言的二進(jìn)制碼,就把機(jī)器語言變成了匯編語言。因

7、此匯編語言亦稱為符號(hào)語言。使用匯編語言編寫的程序,機(jī)器不能直接識(shí)別,要由一種程序?qū)R編語言翻譯成機(jī)器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統(tǒng)軟件中語言處理系統(tǒng)軟件。匯編語言編譯器把匯編程序翻譯成機(jī)器語言的過程稱為匯編。 匯編語言比機(jī)器語言易于讀寫、調(diào)試和修改,同時(shí)具有機(jī)器語言全部優(yōu)點(diǎn)。但在編寫復(fù)雜程序時(shí),相對(duì)高級(jí)語言代碼量較大,而且匯編語言依賴于具體的處理器體系結(jié)構(gòu),不能通用,因此不能直接在不同處理器體系結(jié)構(gòu)之間移植。 匯編語言的特點(diǎn): (1) 面向機(jī)器的低級(jí)語言,通常是為特定的計(jì)算機(jī)或系列計(jì)算機(jī)專門設(shè)計(jì)的。 (2) 保持了機(jī)器語言的優(yōu)點(diǎn),具有直接和簡捷的特點(diǎn)。 (3) 可有效地訪

8、問、控制計(jì)算機(jī)的各種硬件設(shè)備,如磁盤、存儲(chǔ)器、CPU、I/O端口等。(4) 目標(biāo)代碼簡短,占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計(jì)語言。(5) 經(jīng)常與高級(jí)語言配合使用,應(yīng)用十分廣泛。 匯編語言的應(yīng)用: (1) 70%以上的系統(tǒng)軟件是用匯編語言編寫的。 (2) 某些快速處理、位處理、訪問硬件設(shè)備等高效程序是用匯編語言編寫的。 (3) 某些高級(jí)繪圖程序、視頻游戲程序是用匯編語言編寫的。 匯編語言直接描述機(jī)器指令,比機(jī)器指令容易記憶和理解。通過學(xué)習(xí)和使用匯編語言,能夠感知、體會(huì)、理解機(jī)器的邏輯功能,向上為理解各種軟件系統(tǒng)的原理,打下技術(shù)理論基礎(chǔ);向下為掌握硬件系統(tǒng)的原理,打下實(shí)踐應(yīng)用基礎(chǔ)。 5.開發(fā)

9、平臺(tái)開發(fā)環(huán)境:Windows平臺(tái)+MASM環(huán)境運(yùn)行環(huán)境:Windows全系列開發(fā)語言:匯編語言二 總體方案設(shè)計(jì)1. 程序設(shè)計(jì)的整體設(shè)計(jì)思路 要求完成一個(gè)打字練習(xí)程序,即在規(guī)定的時(shí)間內(nèi)按下屏幕上顯示的字母,字母就消失,否則字母一直移動(dòng)到屏幕底端。(比如:運(yùn)行程序時(shí),出現(xiàn)菜單主界面,按回車鍵出現(xiàn)由26個(gè)字母組成的亂序行,這時(shí)其中任一字母落下,在鍵盤上敲入該字母,如果輸入正確,字母消失;按ESC鍵返回主界面;按空格見暫停;按E退出。)在設(shè)計(jì)本課題之前,要考慮兩個(gè)問題:一是如何從鍵盤輸入并顯示字符;二是如何在輸入時(shí)進(jìn)行計(jì)時(shí)??紤]第一個(gè)問題,在PC中,對(duì)鍵盤的管理是通過中斷機(jī)構(gòu)和8255可編程序外圍接口

10、芯片來實(shí)現(xiàn)的。在我的設(shè)計(jì)中,我采用的是第一種思路。由于系統(tǒng)在BIOS中已配備了鍵盤的服務(wù)功能,因此可通過調(diào)用鍵盤的DOS和BIOS功能編程。而且設(shè)計(jì)中使用的都是軟件中斷,故在具體的程序設(shè)計(jì)時(shí),需要禁止硬件中斷。再考慮第二個(gè)問題,計(jì)時(shí)部分也可通過定時(shí)器的中斷來實(shí)現(xiàn)。由于定時(shí)器中斷優(yōu)先級(jí)比鍵盤高,只要在鍵盤中斷處理程序中用一條STI指令允許高級(jí)中斷,那么在整個(gè)打字的過程中,定時(shí)器會(huì)以每秒18.2次的頻率產(chǎn)生中斷。根據(jù)計(jì)時(shí)的需要,在整個(gè)打字過程中,再使用自編的中斷例行程序可把定時(shí)器中斷的次數(shù)轉(zhuǎn)換成時(shí)間。 在鍵盤打字時(shí)采用09類型的鍵盤中斷,來取得輸入字符并將字符顯示在屏幕上。程序設(shè)計(jì)時(shí),預(yù)先設(shè)置的堆

11、棧中存放一些字符串例句,每次打字之前,屏幕上先顯示出一個(gè)例句,然后打字員按照例句,將句中字符通過鍵盤輸入。這個(gè)過程可反復(fù)進(jìn)行,當(dāng)鍵入一個(gè)功能鍵時(shí),退出打字計(jì)時(shí)程序。自行編制鍵盤中斷和時(shí)間中斷處理程序,并保存原中斷向量。程序運(yùn)行時(shí),使用自編的中斷向量處理程序。程序退出時(shí),恢復(fù)中斷向量。自編中斷處理程序也是本課題需要考慮的重要問題。雖然系統(tǒng)自帶了許多中斷例行程序可以由INT指令來執(zhí)行,但在本課題中需要對(duì)原中斷例行程序的功能進(jìn)行擴(kuò)充才可。該打字程序包括以下五個(gè)子程序:(1)主界面的顯示模塊;(2)打字練習(xí)模塊;(3)設(shè)置速度模塊;(4)密碼模塊;(5)清屏模塊。其中的打字練習(xí)模塊又分為以下三個(gè)子程序

12、:(a)游戲界面模(b)功能模塊2. 算法的整體設(shè)計(jì)思路此程序涉及到宏和I/O中斷的調(diào)用,通過對(duì)宏的定義和使用以及對(duì)I/O中斷的使用,實(shí)現(xiàn)程序的相應(yīng)功能。利用宏,實(shí)現(xiàn)各個(gè)界面的顯示,采用中斷,實(shí)現(xiàn)各個(gè)子程序的相互轉(zhuǎn)換。其中最主要的是打字程序:運(yùn)行程序,打字界面中出現(xiàn)由26個(gè)字母組成的亂序行,這時(shí)其中會(huì)有任一字母落下,在鍵盤上輸入該字母,字母消失,分?jǐn)?shù)值加1,否則字母一直移動(dòng)到屏幕底端,然后消失,生命值減1。當(dāng)生命值減為零且未在字母下落到屏幕底端之前輸入該下落字母時(shí),打字練習(xí)結(jié)束,顯示結(jié)束界面。3. 程序的主要特點(diǎn)本程序最大的特點(diǎn)就是具有較好的人機(jī)交互功能。在主界面中,用戶可以選擇不同的游戲等級(jí)

13、,他們能夠根據(jù)自己的實(shí)際打字速度,選擇相匹配的等級(jí)進(jìn)行打字練習(xí)。如果用戶對(duì)我們?cè)O(shè)計(jì)的程序有不明白的地方,可以選擇幫助進(jìn)行求解,并能與我們聯(lián)系,討論程序的不足,尋求改進(jìn),或者分享程序中的精妙之處。此外,根據(jù)用戶的打字情況,我們會(huì)給予他們相應(yīng)的分?jǐn)?shù)和生命數(shù)。三 詳細(xì)設(shè)計(jì)1. 流程圖本次程序開始是一個(gè)主界面,在主界面上包括四個(gè)選項(xiàng),第一個(gè)選項(xiàng)是進(jìn)入打字子程序,第二個(gè)是選擇進(jìn)入等級(jí)設(shè)置子程序,第三個(gè)是進(jìn)入幫助子程序,第四個(gè)是退出主界面,以下是程序的主流程圖:開始 輸入密碼主界面速度選擇游戲界面E 退出Space 暫停ESC返回主界面 圖3-1 流程圖2. 主界面?zhèn)未a STR1 DB Welcome

14、to play chars,0AH,0DH, $ STR2 DB Made by zhangxiang zhangning yinfeng wanghanfei wujingxian,0AH,0DH, $ STR3 DB 2011/9/29 ,0AH,0DH, $ STR4 DB Please choose speeding,0AH,0DH, $ STR5 DB Please press Enter to cintinue. ,0AH,0DH, $ STRA DB ,0AH,0DH, $ STRB DB score: , i,0AH,0DH, $ STRC DB You choose: ,0A

15、H,0DH, $ STRD DB hqfuvodepfdjygnhtrwgaerjrklubgsnyrsbntrsbngtrdjykuahtrgregfytjgfjytjktru, $ STRE DB RIGHT: , $ MES5 DB PLEASE ENTER YOUR PASSWORD :$ PASSWORD DB PASSWORD1 DB 6 DUP(?) 3等級(jí)界面?zhèn)未a在主界面中選擇2,進(jìn)入等級(jí)界面的設(shè)置,其中有6個(gè)等級(jí),代表不同的難易程度。用戶可選則其中的任意一個(gè)級(jí)別,按Enter鍵表示確定并返回主界面,若用戶輸入的錯(cuò)誤的等級(jí),則一直等待,直到輸入了正確的等級(jí)。以下是等級(jí)界面的偽

16、代碼: STR7 DB speed 1,0AH,0DH, $ STR8 DB speed 2,0AH,0DH, $ STR9 DB speed 3,0AH,0DH, $ STR0 DB Select the number among 1-3,0AH,0DH, $4. 游戲界面?zhèn)未a此偽代碼顯示的是進(jìn)入打字界面的提示信息: ST1 DB RIGHT: Pause,0AH,0DH, $ ST2 DB E : Quit,0AH,0DH, $ ST8 DB Esc: Back,0AH,0DH, $ ST3 DB Function Meun,0AH,0DH, $ ST4 DB please input.

17、 ,0AH,0DH, $ ST5 DB SPACE: Continue,0AH,0DH, $ ST6 DB Thank You ! ,0AH,0DH, $ ST10 DB ,0AH,0DH, $; ST9 DB VREY GOOD ! ,0AH,0DH, $ ; 5. 清屏子程序設(shè)計(jì)BIOS功能調(diào)用中的INT 10H功能6能使屏幕內(nèi)容上卷指定的行,這個(gè)功能需要設(shè)置4個(gè)參數(shù),分別代表清屏區(qū)域的左上角的坐標(biāo)和右下角的坐標(biāo)。如果屏幕的其實(shí)行列不為(0,0)結(jié)束的行列不為(24,79),則屏幕上只有指定的一部分具有上卷的功能,這個(gè)屏幕傷的部分區(qū)域叫做窗口(window)像這樣的窗口可以在屏幕上設(shè)置多個(gè)

18、,這些窗口都可以獨(dú)立使用。如果上卷超過指定窗口的頂部,這些行的內(nèi)容就消失,出現(xiàn)在窗口底部的新行被填為空格,其屬性用BH寄存器決定。如果AL=0,則實(shí)現(xiàn)完成的工作是清楚屏幕的功能,它將按AL中的BH字符使指定的窗口為空白。以下是清除全屏幕的子程序: CLEAR PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,6 MOV AL,0 ;blank screen MOV BH,7 MOV CH,0 ;左上角行號(hào) MOV CL,0 ;左上角列號(hào) MOV DH,24 ;右下角行號(hào) MOV DL,79 ;右下角列號(hào) INT 10H ;屏幕初始化或上卷 MOV

19、 DX,0 ;行列號(hào)都為0 MOV AH,2 INT 10H ;置光標(biāo)位置; ; DIS5 25D,B ;置背景色 背景 藍(lán) 前景紅 DIS5 25D,B ;置背景色 背景白色 前景紅; DIS3 RET CLEAR ENDP 6.密碼程序設(shè)計(jì) DIS1 MES5,5,15LEA BX,PASSWORD1MOV CX,6 INPUT:MOV AH,07HINT 21HMOV BX,ALINC BXMOV AH,02HMOV DL,*INT 21HLOOP INPUTCONTIUN:MOV AH,07HINT 21HCMP AL,0DHJNE CONTIUNMOV CX,6LEA SI,PASS

20、WORDLEA DI,PASSWORD1CHECK:MOV AL,SICMP AL,DIJNE STARTINC SIINC DILOOP CHECK 7.宏代碼7.1在指定位置顯示彩色字符串;=DIS1 MACRO STRING1,Y,M MOV AH,2 MOV BH,0 ;頁號(hào) MOV DH,Y ;行標(biāo) MOV DL,M ;列標(biāo) INT 10H ;置光標(biāo)位置 MOV AH,09H MOV DX,SEG STRING1 MOV DS,DX MOV DX,OFFSET STRING1 INT 21H ;顯示字符串 ENDM;=7.2顯示背景;=DIS5 MACRO S1,S2 DIS2 MO

21、V AH,6 MOV AL,0 ;blank screen MOV AL,s1 ;上卷25行 MOV BH,s2 ;綠色背景 紅色前景 MOV CH,0 MOV CL,0 MOV DH,0 MOV DL,80 INT 10H ;屏幕初始化或上卷 DIS3 ENDM;=7.3畫橫向邊框的宏;=DIS6 MACRO Z1,Z2,Z3,Z4 LOCAL C5 ; LOCAL為重復(fù)定義的定義符 DIS2 MOV CX,Z1 ;循環(huán)次數(shù) MOV DL,Z2 ;列 C5: MOV AH,2 MOV BH,Z3 ;頁號(hào) MOV DH,Z4 ;行 INT 10H ;置光標(biāo)位置 PUSH DX MOV DL,2

22、AH INT 21H ;輸出* POP DX INC DL ;列 + LOOP C5 DIS3 ENDM;=7.4畫豎邊框的宏;=DIS7 MACRO Q1,Q2,Q3,Q4 LOCAL F1 ; LOCAL為重復(fù)定義的定義符 DIS2 MOV CX,Q4 MOV DH,Q1 ;行 F1: MOV AH,2 MOV BH,Q2 MOV DL,Q3 ;列 INT 10H ;置光標(biāo)位置 MOV DL,2AH INT 21H INC DH LOOP F1 DIS3 ENDM;=8.功能的進(jìn)一步完善8.1完善代碼一修改界面背景屬性 ;DIS5 25D,B ;置背景色 背景 藍(lán) 前景紅DIS5 25D,

23、B ;置背景色 背景 紅 前景白;閃爍背景背景背景亮度前景前景前景;=;顯示背景DIS5 MACRO S1,S2 DIS2 MOV AH,6 MOV AL,0 ;blank screen MOV AL,s1 ;上卷25行 MOV BH,s2 ;綠色背景 紅色前景 MOV CH,0 MOV CL,0 MOV DH,0 MOV DL,80 INT 10H ;屏幕初始化或上卷 DIS3 ENDM;=8.2完善代碼二擊中下落字母后,使其顯示不同的顏色; MOV AH,2 MOV BH,0 INT 10H PUSH axPUSH bx mov ah ,9mov bh ,0mov cx,1mov al,s

24、imov bl,B ;字母擊中后顯示白色I(xiàn)NT 10H pop axpop bx call SLEEP1MOV AH,2 MOV BH,0PUSH DX MOV DL, MOV AH,02H INT 21H ;顯示空格 覆蓋字母 INT 10H ;置光標(biāo)位置 POP DX;8.3完善代碼三當(dāng)游戲分?jǐn)?shù)達(dá)到某一數(shù)值時(shí),顯示“Very Good!”; ST9 DB VREY GOOD ! ,0AH,0DH, $ ;CMP AL,30 ;擊中30次顯示 jnz T DIS1 ST9 20,60 ;顯示“VERY GOOD”; 四 運(yùn)行結(jié)果說明1.密碼界面圖:圖4-1 密碼界面圖 運(yùn)行程序,將會(huì)出現(xiàn)以上

25、界面,這個(gè)功能是通過字符串的一個(gè)一個(gè)的比較實(shí)現(xiàn)的,輸入錯(cuò)誤后,要重新輸入,直到輸入正確的密碼。2.主界面圖:圖 4-2 主界面輸入密碼后,進(jìn)入主界面;第一行是密碼行;第二行是歡迎語句;第三行是組員名字;第四行是演示代碼的時(shí)間;第五行是提示語句。3.等級(jí)選擇界面:圖 4-3 等級(jí)選擇界面按ENTER鍵后,進(jìn)入等級(jí)選擇界面這是一個(gè)等級(jí)選擇界面,有三個(gè)等級(jí)進(jìn)行選擇,分別代表不同的速度,速度一次遞增,只能輸入1-3,直到輸入正確才能開始游戲。4.游戲界面: 圖4-4 游戲界面選擇等級(jí)后,進(jìn)入游戲界面;界面的左邊是功能菜單,可以進(jìn)行功能的選擇,暫停(空格鍵),退出(E),返回主界面(Esc);界面的中間

26、是游戲區(qū),當(dāng)用擊中下落的字母后,字母會(huì)變?yōu)榘咨?,并有聲音發(fā)出,表示用戶擊中字母;界面的右邊是記分功能,可以顯示用戶的當(dāng)前分?jǐn)?shù),但用戶的積分達(dá)到一定數(shù)值時(shí),會(huì)顯示祝賀語句。 五 課程設(shè)計(jì)總結(jié)匯編語言(Assembly Language)是面向機(jī)器的程序設(shè)計(jì)語言。 匯編語言比機(jī)器語言易于讀寫、易于調(diào)試和修改,同時(shí)也具有機(jī)器語言執(zhí)行速度快,占內(nèi)存空間少等優(yōu)點(diǎn),但在編寫復(fù)雜程序時(shí)具有明顯的局限性,匯編語言依賴于具體的機(jī)型,不能通用,也不能在不同機(jī)型之間移植。是能完成一定任務(wù)的機(jī)器指令的集合。 常說匯編語言過時(shí),是低級(jí)語言,并不是說匯編語言要被棄之,相反,匯編語言仍然是程序員必須了解的語言,在某些行業(yè)與

27、領(lǐng)域,匯編是必不可少的,非它不可適用。只是,現(xiàn)在計(jì)算機(jī)最大的領(lǐng)域?yàn)镮T軟件,也是我們常說的 Windows 編程,在熟練的程序員手里,使用匯編語言編寫的程序,運(yùn)行效率與性能比其它語言寫的程序是成倍的優(yōu)秀,但是代價(jià)是需要更長的時(shí)間來優(yōu)化,如果對(duì)計(jì)算機(jī)原理及編程基礎(chǔ)不扎實(shí),實(shí)在是得不償失,對(duì)比現(xiàn)在的軟件開發(fā),已經(jīng)是市場(chǎng)化的軟件行業(yè),加上高級(jí)語言的優(yōu)秀與跨平臺(tái),一個(gè)公司不可以讓一個(gè)團(tuán)隊(duì)使用匯編語言來編寫所有的東西,花上幾倍甚至幾十倍的時(shí)間,不如使用其它語言來完成,只要最終結(jié)果不比匯編語言編寫的差太多,就能搶先一步完成,這是市場(chǎng)經(jīng)濟(jì)下的必然結(jié)果。 但是,至今為止,還沒有程序員敢斷定匯編語言是不需要學(xué)的

28、,一個(gè)不懂匯編語言的程序員,只是三流的程序員,這是大部分人的共識(shí),同時(shí),技術(shù)匯編語言(Assembly Language)是面向機(jī)器的程序設(shè)計(jì)語言精湛的匯編程序員,已經(jīng)脫離軟件開發(fā),擠身于工業(yè)電子編程中,一個(gè)電子工程師,主要開發(fā)語言就是匯編,c語言使用只占極少部分,而電子開發(fā)工程師是千金難求,在一些工業(yè)公司,一個(gè)核心的電子工程師比其它任何職員待遇都高,對(duì)比起來,一般電子工程師待遇是程序員的十倍以上。這種情況是因?yàn)楝F(xiàn)在學(xué)習(xí)匯編的人雖然也不少,但是真正能學(xué)到精通的卻不多,它難學(xué),難用,適用范圍小,雖然簡單,但是過于靈活,學(xué)習(xí)過高級(jí)語言的人去學(xué)習(xí)匯編比一開始學(xué)匯編的人難得多,但是學(xué)過匯編的人學(xué)習(xí)高級(jí)

29、語言卻很容易,簡從繁易,繁從簡難。 該程序是由匯編語言編寫的打字練習(xí)程序。通過本次課程設(shè)計(jì),使我對(duì)匯編語言的語法結(jié)構(gòu)和基本語義有了較為清楚的了解;通過自己的設(shè)計(jì)和編寫代碼,我也將書上每章的知識(shí)大致的復(fù)習(xí)了一遍,加深了我的印象,通過設(shè)計(jì),我深刻認(rèn)識(shí)到一個(gè)清晰明朗的流程圖對(duì)程序的設(shè)計(jì)是十分重要的。在設(shè)計(jì)中,我在沒有先畫流程圖的情況下就開始編寫代碼,結(jié)果是我弄得一頭霧水,實(shí)在是無法進(jìn)行了,后來經(jīng)過同學(xué)的建議,我在弄清題意的情況下,畫了程序流程圖,并按此開始編寫代碼,結(jié)果讓我獲益匪淺。與其他同學(xué)合作完成本次課程設(shè)計(jì),在這次課程設(shè)計(jì)中我收獲如下:1.學(xué)到了匯編語言設(shè)計(jì)程序的思想和方法。2.學(xué)會(huì)了任務(wù)分配

30、、任務(wù)從化整為零,再化零為整的方法。3.學(xué)到發(fā)現(xiàn)問題思考問題解決問題的方法。 4.增強(qiáng)了團(tuán)隊(duì)精神其中我也認(rèn)識(shí)到不少不足,對(duì)匯編語言,尤其宏的使用有了更多認(rèn)識(shí),但是我也發(fā)現(xiàn)自己深入理解不多。宏過程和宏函數(shù),宏傳遞的參數(shù)和返回值,以及局部變量都是我不能融會(huì)貫通的地方,需要時(shí)間進(jìn)行更多的練習(xí)。通過這次課程設(shè)計(jì)讓我跟具體的了解了匯編語言的用途以及他的特點(diǎn),這樣有利于在今后的實(shí)踐中更好的去應(yīng)用匯編語言解決問題,同時(shí)通過這次的課程設(shè)計(jì)也體現(xiàn)出了我的在匯編方面的一些基礎(chǔ)知識(shí)的不足。由于對(duì)匯編語言的一些基本知識(shí)的掌握不足,程序中還存在或多或少的缺陷和不足,有一些的基本功能在邏輯上還存在一些的小問題,但是不會(huì)影

31、響基本的使用。參考文獻(xiàn)1 沈美明 ,溫冬嬋,IBM-PC匯編語言程序設(shè)計(jì)(第2版),北京,清華大學(xué)出版社,2008年4月;2 王慶生,匯編語言程序設(shè)計(jì),合肥,合肥工業(yè)大學(xué)出版社,2006年8月;3 翟社平,匯編語言程序設(shè)計(jì)教程,西安,西安電子科技大學(xué)出版社,2003年2月;4 金漢均 金洋,匯編語言程序設(shè)計(jì),武漢,武漢大學(xué)出版社 ,2007年9月;5 梁發(fā)寅,宗大華,匯編語言程序設(shè)計(jì),北京,人民郵電出版社,2004年3月;6 冉林倉,win32匯編語言實(shí)用教程,北京,清華大學(xué)出版社,2004年2月;7 楊季文,80X86匯編語言程序設(shè)計(jì)教程,北京,清華大學(xué)出版社,1999年3月。8 何超,匯編

32、語言程序設(shè)計(jì)實(shí)驗(yàn)與習(xí)題解答(第1版),機(jī)械工業(yè)出版社,2010年4月9 蔡啟先,王智文匯編語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)(第1版),清華大學(xué)出版社,2008年3月10 王爽,匯編語言(第2版)北京,清除大學(xué)出版社,2008年4月11 秦蓮,匯編語言程序設(shè)計(jì)實(shí)訓(xùn)教程(第1版),北京,北京交通大學(xué)出版社,2005年5月12 賀紅娟,匯編語言程序設(shè)計(jì)教程(第1版),北京,清華大學(xué)出版社,2009年4月13 李長青,微型計(jì)算機(jī)原理與接口技術(shù) 中國礦業(yè)大學(xué)出版社 14 張開成,鐘文龍,匯編語言案例教程(第版),北京,化學(xué)工業(yè)出版社,2009年3月15 譚浩強(qiáng),C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第二版),北京,清華大學(xué)出版

33、社,2000年9月16 范立南,謝子殿,單片機(jī)原理及應(yīng)用教程(第1版),北京大學(xué)出版社,2006年1月 匯編 課程設(shè)計(jì)成績?cè)u(píng)定表姓 名張祥性 別男專業(yè)班級(jí)計(jì)算機(jī)學(xué)院09計(jì)科(1)班課程設(shè)計(jì)題目:打字練習(xí)課程設(shè)計(jì)答辯或質(zhì)疑記錄:成績?cè)u(píng)定依據(jù):最終評(píng)定成績(以優(yōu)、良、中、及格、不及格評(píng)定) 指導(dǎo)教師簽字: 年 月 日源代碼:;= ; ;兩排斜杠中間為 提問 修改部分 ;=;在指定位置顯示彩色字符串DIS1 MACRO STRING1,Y,M MOV AH,2 MOV BH,0 ;頁號(hào) MOV DH,Y ;行標(biāo) MOV DL,M ;列標(biāo) INT 10H ;置光標(biāo)位置 MOV AH,09H MOV D

34、X,SEG STRING1 MOV DS,DX MOV DX,OFFSET STRING1 INT 21H ;顯示字符串 ENDM;=;宏進(jìn)棧DIS2 MACRO PUSH AX PUSH BX PUSH CX PUSH DX ENDM;=;宏出棧 DIS3 MACRO POP DX POP CX POP BX POP AX ENDM;=;顯示背景DIS5 MACRO S1,S2 DIS2 MOV AH,6 MOV AL,0 ;blank screen MOV AL,s1 ;上卷25行 MOV BH,s2 ;綠色背景 紅色前景 MOV CH,0 MOV CL,0 MOV DH,0 MOV DL,80 INT 10H ;屏幕初始化或上卷 DIS3 ENDM;=;畫橫向邊框的宏DIS6 MACRO Z1,Z2,Z3,Z4 LOCAL C5 ; LOCAL為重復(fù)定義的定義符 DIS2 MOV CX,Z1 ;循環(huán)次數(shù) MOV DL,Z2 ;列 C5: MOV AH,2 MOV BH,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論