




已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
此文檔收集于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系網(wǎng)站刪除學(xué) 號(hào): 課 程 設(shè) 計(jì)題 目吃豆子程序?qū)W 院 專(zhuān) 業(yè) 班 級(jí) 姓 名 指導(dǎo)教師 2012年01月12日課程設(shè)計(jì)任務(wù)書(shū)學(xué)生姓名: 專(zhuān)業(yè)班級(jí): 指導(dǎo)教師: 工作單位: 題 目: 吃豆子程序 初始條件: 在屏幕上顯示多行“豆子”(用“.”表示),“豆子”隨機(jī)分布,用一個(gè)“嘴巴”(用字符“C”表示)吃“豆子”,程序運(yùn)行時(shí),單擊上下左右鍵,“嘴巴”開(kāi)始逐個(gè)“吃豆子”,一直到“豆子”被吃完停止或者單擊P鍵暫停;按Q鍵退出程序。要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書(shū)撰寫(xiě)等具體要求)(1) 設(shè)計(jì)任務(wù)及要求分析(2) 方案比較及認(rèn)證說(shuō)明(3) 系統(tǒng)原理闡述(4) 硬件設(shè)計(jì)課題需要說(shuō)明:硬件原理,電路圖,采用器件的功能說(shuō)明(5) 軟件設(shè)計(jì)課題需要說(shuō)明:軟件思想,流程圖,源程序及程序注釋?zhuān)?) 調(diào)試記錄及結(jié)果分析(7) 總結(jié)(8) 參考資料(9) 附錄:芯片資料或程序清單,軟件演示屏幕拷貝圖或硬件實(shí)物圖時(shí)間安排:1月4日1月5日:收集資料,方案選擇1月6日1月8日:整體流程,程序細(xì)節(jié)1月9日1月12日:調(diào)試程序,報(bào)告撰寫(xiě)1月12:交設(shè)計(jì)報(bào)告,程序演示,答辯指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日精品文檔目 錄摘要1ABSTRACT11 緒論12 設(shè)計(jì)內(nèi)容及分析22.1設(shè)計(jì)內(nèi)容22.2功能實(shí)現(xiàn)分析23 方案論證33.1方案比較33.2主要程序調(diào)用命令及格式43.2.1 INT 21H中斷43.2.2 INT 10H中斷53.2.3 INT 16H中斷64 單元程序設(shè)計(jì)74.1主程序74.2界面顯示程序84.3延時(shí)子程序84.4暫停子程序104.5方向子程序115 程序編寫(xiě)與調(diào)試分析135.1源程序135.2程序的調(diào)試問(wèn)題205.3運(yùn)行結(jié)果及分析206 小結(jié)22參考文獻(xiàn)23附錄24摘要本微機(jī)課程設(shè)計(jì)一種簡(jiǎn)便的編寫(xiě)“吃豆子”匯編程序。在屏幕上顯示多行“豆子”(用“.”表示),“豆子”隨機(jī)分布,用一個(gè)“嘴巴”(用字符“C”表示)吃“豆子”,程序運(yùn)行時(shí),單擊上下左右鍵,“嘴巴”開(kāi)始逐個(gè)“吃豆子”,一直到“豆子”被吃完停止或者單擊P鍵暫停;按Q鍵退出程序。通過(guò)設(shè)計(jì)該課程設(shè)計(jì)熟練掌握流程圖的繪制,熟悉匯編語(yǔ)言特別是相關(guān)中斷的調(diào)用以及掌握調(diào)試程序等相關(guān)知識(shí)。其中源程序主要分為主程序、延時(shí)子程序、暫停子程序、方向鍵子程序等主要部分。 關(guān)鍵字:吃豆子 匯編 方向 ABSTRACTThis computer course design an easy to write eat beans assembler. In the screen more lines beans (with . said), beans random distribution, with a mouth (with character C said) to eat beans , and the program is running, click the up and down or so key, mouth start eat beans one, has been to the beans was finished eating the stop or click P bond suspended; According to Q key quit. Through the design of the course design master chart the draw, familiar with assembly language especially relevant interrupted the call and master of debugging and related knowledge. The main points of the source program mainly procedures, delay subroutines, suspend the procedure, the direction key procedure and other major parts.Keywords:Bean-eating Assembly Direction 1 緒論 本微機(jī)原理課程設(shè)計(jì)主要是使我們?cè)鲞M(jìn)對(duì)匯編語(yǔ)言的認(rèn)識(shí),加強(qiáng)用匯編語(yǔ)言編程的能力。 使我們掌握匯編語(yǔ)言的中斷調(diào)用功能的應(yīng)用,可以用匯編語(yǔ)言調(diào)用各種中斷調(diào)用功能,并由此實(shí)現(xiàn)對(duì)硬件的控制等。使學(xué)生了解和掌握匯編程序設(shè)計(jì)過(guò)程、方法及實(shí)現(xiàn),同時(shí)能夠更好的加強(qiáng)對(duì)微機(jī)原理課程的進(jìn)一步的學(xué)習(xí)與鞏固。 本課程設(shè)計(jì)書(shū)說(shuō)明書(shū)主要分析了用匯編語(yǔ)言編寫(xiě)“吃豆子”程序的過(guò)程,其中題目要求在屏幕用“.”表示豆子,“C”表示嘴巴,然后通過(guò)相關(guān)控制鍵嘴巴吃豆子,并且可以隨時(shí)退出程序。要實(shí)現(xiàn)該功能需要實(shí)現(xiàn)在界面上顯示相關(guān)的信息(可以調(diào)用DOS中斷)、對(duì)鍵盤(pán)信息的采集(可以調(diào)用BIOS中斷)、并且實(shí)現(xiàn)相關(guān)的控制(如退出程序、暫停等)。 匯編語(yǔ)言是一種功能很強(qiáng)的程序設(shè)計(jì)語(yǔ)言,也是利用計(jì)算機(jī)所有硬件特性并能直接控制硬件的語(yǔ)言。匯編語(yǔ)言,作為一門(mén)語(yǔ)言,對(duì)應(yīng)于高級(jí)語(yǔ)言的編譯器,需要一個(gè)“匯編器”來(lái)把匯編語(yǔ)言原文件匯編成機(jī)器可執(zhí)行的代碼。高級(jí)的匯編器如MASM,TASM等等為我們寫(xiě)匯編程序提供了很多類(lèi)似于高級(jí)語(yǔ)言的特征,比如結(jié)構(gòu)化、抽象等。在這樣的環(huán)境中編寫(xiě)的匯編程序,有很大一部分是面向匯編器的偽指令,已經(jīng)類(lèi)同于高級(jí)語(yǔ)言?,F(xiàn)在的匯編環(huán)境已經(jīng)如此高級(jí),即使全部用匯編語(yǔ)言來(lái)編寫(xiě)windows的應(yīng)用程序也是可行的,但這不是匯編語(yǔ)言的長(zhǎng)處。匯編語(yǔ)言的長(zhǎng)處在于編寫(xiě)高效且需要對(duì)機(jī)器硬件精確控制的程序。 2 設(shè)計(jì)內(nèi)容及分析2.1設(shè)計(jì)內(nèi)容課程設(shè)計(jì)的題目是吃豆子程序,通過(guò)分析要實(shí)現(xiàn)的功能又如下幾點(diǎn): 1. 在屏幕上顯示多行“豆子”(用“.”表示),“豆子”隨機(jī)分布;2. 用一個(gè)“嘴巴”(用字符“C”表示)吃“豆子”;3. 程序運(yùn)行時(shí),單擊上下左右鍵,“嘴巴”開(kāi)始“吃豆子”;4. 一直到“豆子”被吃完停止或者單擊P鍵暫停;5. 按Q鍵退出程序。2.2功能實(shí)現(xiàn)分析功能一:顯示豆子在程序數(shù)據(jù)段定義一段再調(diào)用DOS中斷顯示豆子;功能二:顯示嘴吃豆子在光標(biāo)所在位置顯示C嘴,在將DL(DH)加一(減一),再將光標(biāo)位置顯示成空格,表示成豆子被“吃”了;功能三:?jiǎn)螕舴较蜴I開(kāi)始吃豆子取光標(biāo)鍵的掃描碼,判斷輸入方向然后分別向不同方向吃豆子,即調(diào)用功能二;功能四:?jiǎn)螕鬚暫停讀取鍵盤(pán)的是否有P輸入,有則然后執(zhí)行暫停子程序;功能五:?jiǎn)螕鬛退出程序讀取鍵盤(pán)的是否有Q輸入,有則退出程序;3 方案論證3.1方案比較經(jīng)過(guò)相關(guān)資料的查閱與網(wǎng)上資料的收集初步整理得到了如下的兩種方案;方案1:具體流程圖如下圖3-1所示 圖3-1 方案1的流程圖方案1說(shuō)明:主要運(yùn)用DOS調(diào)用及BIOS調(diào)用得到相關(guān)的程序得到的,在程序數(shù)據(jù)段定義一段再調(diào)用DOS中斷顯示豆子;在光標(biāo)所在位置顯示C嘴,在將DL(DH)加一(減一),再將光標(biāo)位置顯示成空格,表示成豆子被“吃”了;單擊方向鍵開(kāi)始吃豆子取光標(biāo)鍵的掃描碼,判斷輸入方向然后分別向不同方向吃豆子;讀取鍵盤(pán)的是否有P輸入,有則然后執(zhí)行暫停程序;讀取鍵盤(pán)的是否有Q輸入,有則退出程序。方案2:具體流程圖如下圖3-2所示圖3-2 方案2流程圖方案2說(shuō)明首先定義一個(gè)字符串,內(nèi)容為字符“C”的ASC值還有其他的一些相關(guān)信息,然后把屏幕設(shè)置多行豆子,或者布滿(mǎn)豆子,把“C”每往前走一格就把該位子上的豆子變?yōu)榭崭矜I,即“C”遇到非空格就跳轉(zhuǎn)到下一步;這樣一顆豆子就吃掉了,只要依次循環(huán)下去,就可以把豆子全部吃掉,或者中間按空格,暫停游戲。兩種方案比較:方案1編寫(xiě)程序時(shí)可以調(diào)用相對(duì)簡(jiǎn)單的命令,循環(huán)結(jié)構(gòu)不是很復(fù)雜,子程序的調(diào)用,實(shí)現(xiàn)起來(lái)相對(duì)比較簡(jiǎn)單直觀;而方案2編寫(xiě)的程序功能不全吧,不能很好的實(shí)現(xiàn)題目要求功能,所以可以采用方案13.2主要程序調(diào)用命令及格式3.2.1 INT 21H中斷1. 9號(hào)功能調(diào)用(字符串輸出)9號(hào)功能調(diào)用是將緩沖區(qū)中的一組以“”結(jié)束的字符串送標(biāo)準(zhǔn)輸出設(shè)備輸出(顯示器或打印機(jī))。調(diào)用前必須將輸出緩沖區(qū)的首地址送DS:DX。格式如下:LEA DX,BUF;取字符串的首地址MOV AH, 9;調(diào)用功能號(hào)為9號(hào)INT 21H2. 2號(hào)功能調(diào)用(字符輸出顯示)2號(hào)功能是將一個(gè)字符(一個(gè)ASCII碼值)輸出到標(biāo)準(zhǔn)輸出設(shè)備(即顯示器或打印機(jī))。入口參數(shù)為DL寄存器,寄存器DL中存放待輸出的字符。格式如下:MOV DL,10;送入ASCII碼 MOV AH,2;調(diào)用功能號(hào)為9號(hào) INT 21H3.2.2 INT 10H中斷1. 0號(hào)功能調(diào)用0號(hào)功能是用來(lái)設(shè)置界面顯示方式,在本程序中選用8025黑白文本顯示方式(2號(hào)顯示方式),即在AL中送入2。格式如下:MOV AH,0;調(diào)用功能號(hào)為0號(hào)MOV AL,2;選擇2號(hào)顯示方式INT 10H;2. 2號(hào)功能程序2號(hào)用來(lái)號(hào)功能是設(shè)置光標(biāo)位置(2號(hào)功能),其中入口參數(shù)表示為AH=2(功能號(hào)),BH=頁(yè)號(hào),DH=行號(hào),DL=列號(hào)。出口參數(shù):無(wú)。根據(jù)DX確定了光標(biāo)位置。(在調(diào)用該功能號(hào)時(shí),之前DH、DL已經(jīng)給定)格式如下:MOV AH,2;調(diào)用功能號(hào)為2號(hào)INT 10H3. 10號(hào)功能程序10號(hào)功能是實(shí)現(xiàn)在當(dāng)前光標(biāo)位置寫(xiě)字符,其中入口參數(shù):AH=0AH,BH=頁(yè)號(hào),AL=字符的ASCII碼,CX=寫(xiě)入字符數(shù)。出口參數(shù):無(wú)。格式如下:MOV AH,10;調(diào)用功能號(hào)為10號(hào)INT 10H4. 15號(hào)功能程序15號(hào)功能是實(shí)現(xiàn)讀當(dāng)前顯示狀態(tài),其中入口參數(shù):AH=0FH,出口參數(shù):AL=當(dāng)前顯示方式,BH=頁(yè)號(hào),AL=屏幕上字符列數(shù)。格式如下:MOV AH,15 ;調(diào)用功能號(hào)為10號(hào) INT 10H 3.2.3 INT 16H中斷1. 0號(hào)功能調(diào)用0號(hào)功能是用來(lái)檢查鍵盤(pán)緩沖區(qū)是否有一個(gè)字符。如果有,通過(guò)AH返回字符的掃描碼,通過(guò)AL返回字符的ASCII碼。若沒(méi)有,等待按鍵出現(xiàn)并返回它。其中對(duì)于方向鍵的這樣沒(méi)有ASCII碼的字符,只通過(guò)AH返回掃描碼,AL=0。在本程序中運(yùn)用的上下左右鍵對(duì)應(yīng)的掃描碼分別是4BH,4DH,50H,48H。格式如下:MOV AH, 0INT 16H2. 1號(hào)功能調(diào)用1號(hào)功能調(diào)用的功能是用來(lái)查詢(xún)鍵盤(pán)緩沖區(qū),對(duì)鍵盤(pán)掃描但不等待,并設(shè)置ZF標(biāo)志。若有按鍵操作(即鍵盤(pán)緩沖區(qū)不空),則ZF0,AL中存放的是輸入的ASCII碼,AH中存放輸入字符的擴(kuò)展碼。若無(wú)鍵按下,則標(biāo)志位ZF1格式如下:MOV AH, 01HINT 16H4 單元程序設(shè)計(jì) 經(jīng)過(guò)方案比較后選擇方案一,具體的編寫(xiě)流程圖及單元程序部分得到各部分的程序,本課設(shè)完整的程序主要包含五個(gè)單元:主程序、界面顯示程序、延時(shí)程序、延時(shí)子程序、方向子程序。首先是在界面顯示提示信息及相關(guān)的豆子,然后是程序的主程序,再在主程序中調(diào)用相應(yīng)的子程序。4.1主程序 主程序是該程序的主要部分,其中包括主要調(diào)用相應(yīng)的子程序,流程圖如下圖4-1所示。圖4-1 主程序流程圖 在主程序中首先顯示豆子,然后判斷輸入S時(shí)可以得到,程序開(kāi)始運(yùn)行,按下方向鍵可以調(diào)用相應(yīng)的方向子程序來(lái)各個(gè)方向來(lái)吃豆子,按下P程序暫停并且顯示P顯示暫停狀態(tài);按下Q則表示退出程序。4.2界面顯示程序由于在程序中顯示“豆子”,可以首先在程序的數(shù)據(jù)段中定義帶有“豆子”的字符,然后調(diào)用DOS顯示功能調(diào)用,另外在輸入多行字符時(shí)需要回車(chē)與換行的調(diào)用。其中界面顯示部分流程圖如下圖4-2所示。另外相應(yīng)的界面提示語(yǔ)的顯示與豆子的顯示一樣,再者在顯示時(shí)需要回車(chē)與換行。圖4-2 界面顯示流程圖具體程序編寫(xiě)(第一行豆子輸入,其他行一樣):DATA SEGMENTBUF1 DB . . . . .$ ;數(shù)據(jù)段定義豆子字符DATA ENDSLEA DX,BUF1 ;取BUF1的首地址MOV AH,9INT 21H;顯示字符串MOV DL,10MOV AH,2INT 21H;回車(chē)命令MOV DL,13MOV AH,2INT 21H;換行命令4.3延時(shí)子程序在屏幕上顯示字符與字符之間顯示時(shí)需要延時(shí),所以需要編寫(xiě)延時(shí)程序,可以采用寄存器先賦值后再自減1來(lái)實(shí)現(xiàn)延時(shí)程序,具體流程圖如下圖4-3所示。圖4-3 延時(shí)程序流程圖具體程序如下:DELAY PROC ;延時(shí)子程序 PUSH CX ;保護(hù)寄存器CX,DX PUSH DX MOV DX,9999 ;設(shè)置延時(shí)時(shí)間10msDL500: MOV CX,19999DL10MS: LOOP DL10MS DEC DX JNZ DL500 POP DX ;恢復(fù)寄存器CX,DX POP CX RET ;返回DELAY ENDP4.4暫停子程序當(dāng)鍵盤(pán)輸入P(大寫(xiě))時(shí),程序進(jìn)入暫停子程序,在暫停子程序中鍵盤(pán)輸入為方向鍵(上下左右)或者鍵S時(shí)返回主程序;當(dāng)輸入Q鍵時(shí)結(jié)束程序;沒(méi)有輸入或者其他輸入繼續(xù)保持暫停狀態(tài)。其中暫停程序如下圖4-3。圖4-4 暫停程序流程圖具體程序及注釋如下PAUSES PROC ;暫停子程序 MOV AH,2 INT 10H;設(shè)置光標(biāo)位置,DH為行號(hào),DL為列號(hào) MOV AL,50H;C的ASCII碼為63H MOV AH,10 INT 10HP: MOV AH,0;檢查是否有輸入, INT 16H; AH返回掃描碼,AL返回ASCII碼CMP AH,4BH ;判斷方向鍵左鍵 JZ P1 CMP AH,4DH;判斷方向鍵右鍵 JZ P1 CMP AH,50H;判斷方向鍵下鍵 JZ P1 CMP AH,48H;判斷方向鍵上鍵 JZ P1 CMP AL,S;判斷方向鍵S鍵 JZ P1CMP AL,Q;判斷方向鍵Q鍵 JZ AJMP PP1: CALL CONTINUE ;調(diào)用CONTINUE子程序 RETPAUSES ENDP4.5方向子程序 當(dāng)輸入為方向鍵時(shí)則開(kāi)始進(jìn)入相應(yīng)的方向子程序,其中在子程序中為右,DL自加1;為左,DL自減1;為上,DH自減1;為下,DH自加1,具體流程圖如下圖4-5所示。圖4-5 方向子程序具體程序如下:DIRL PROC ;向左子程序 MOV AH,10 MOV AL,c INT 10H DEC DL MOV AH,10 MOV AL,0 INT 10HRETDIRL ENDP5 程序編寫(xiě)與調(diào)試分析將上述單元流程圖轉(zhuǎn)換成具體的程序,再將各單元程序組成總的程序,在經(jīng)過(guò)調(diào)試后得到相應(yīng)的源程序。5.1源程序通過(guò)將幾個(gè)單元電路的程序組合起來(lái),在通過(guò)程序的調(diào)試得到了總的源程序具體程序如下所示:STACK SEGMENT STACK DB 200 DUP(0)STACK ENDSDATA SEGMENTSTR_1 DB PRESS DIRECTION KEY THE MOUTH CAN EAT BEANS $STR_2 DB PRESS DIRECTION KEY TO CONTROL DIRECTION$STR_3 DB PRESS Q TO QUIT OR P TO PAUSE$BUF1 DB . . . . .$ ;設(shè)置為5行*40列BUF2 DB . . . .$BUF3 DB . . .$BUF4 DB . .$BUF5 DB . . . . .$DATA ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AH,0 MOV AL,2 INT 10H ;設(shè)置顯示方式 LEA DX,STR_1 ;定義輸出提示語(yǔ) MOV AH,9 INT 21H ;顯示提示語(yǔ) MOV DL,10 MOV AH,2 INT 21H;回車(chē) MOV DL,13 MOV AH,2 INT 21H;換行 LEA DX,STR_2 MOV AH,9 INT 21H MOV DL,10 MOV AH,2 INT 21H MOV DL,13 MOV AH,2 INT 21H LEA DX,STR_3 MOV AH,9 INT 21H MOV DL,10 MOV AH,2 INT 21H MOV DL,13 MOV AH,2 INT 21H LEA DX,BUF1 ;輸出豆子和嘴共有5行 MOV AH,9 INT 21H MOV DL,10 MOV AH,2 INT 21H MOV DL,13 MOV AH,2 INT 21H LEA DX,BUF2 MOV AH,9 INT 21H MOV DL,10 MOV AH,2 INT 21H MOV DL,13 MOV AH,2 INT 21H LEA DX,BUF3 MOV AH,9 INT 21H MOV DL,10 MOV AH,2 INT 21H MOV DL,13 MOV AH,2 INT 21H LEA DX,BUF4 MOV AH,9 INT 21H MOV DL,10 MOV AH,2 INT 21H MOV DL,13 MOV AH,2 INT 21H LEA DX,BUF5 MOV AH,9 INT 21H MOV DL,10 MOV AH,2 INT 21H MOV DL,13 MOV AH,2 INT 21H MOV AH,15 INT 10H ;讀當(dāng)前顯示狀態(tài) MOV CX,1 MOV DX,050FH;設(shè)定光標(biāo)在5行15列 A11: MOV AH,0 ;判斷開(kāi)始 INT 16H CMP AL,53H ;判斷S JE LO JNE A11;判斷等待LO: CALL CONTINUE ;調(diào)用CONTINUE子程序CONTINUE PROC ;吃豆子子程序NEXT: MOV AH,2 INT 10H;設(shè)置光標(biāo)位置,上面設(shè)置的 MOV AL,63H;63H為c的ASCII碼 MOV AH,10 INT 10H;顯示c CALL DELAY ;調(diào)用延時(shí) M: MOV AH,0 INT 16H CMP AH,4BH JE M1 CMP AH,4DH JE M2 CMP AH,48H JE M3 CMP AH,50H JE M4 CMP AL,51H JE A CMP AL,50H JE A1 JMP A12 M1: CALL DIRL ;調(diào)用DIRL子程序 JMP A12M2: CALL DIRR ;調(diào)用DIRR子程序 JMP A12M3: CALL DIRU ;調(diào)用DIRU子程序 JMP A12M4: CALL DIRD ;調(diào)用DIRD子程序 JMP A12A12: MOV AH,10 MOV AL,0 INT 10H ;在當(dāng)前位置輸入空格 CMP DL,40;列數(shù)為40 JA LR CMP DL,1 JB LL CMP DH,3 JB LU CMP DH,7 JA LD JMP NEXTLR: INC DH MOV DL,0 JMP NEXTLL: INC DHMOV DL,39 JMP NEXTLU: INC DL MOV DH,7 JMP NEXTLD: INC DLMOV DH,3JMP NEXTRETCONTINUE ENDP A1: CALL PAUSES ;調(diào)用PAUSES子程序A2: MOV AH,0 INT 16H CMP AL,51H ;判斷是否為Q,退出 JNE A2 A: MOV AH,4CH INT 21HDELAY PROC ;延時(shí)子程序 PUSH CX ;保護(hù)寄存器CX,DX PUSH DX MOV DX,9999 ;設(shè)置延時(shí)時(shí)間10msDL500: MOV CX,9999DL10MS: LOOP DL10MS DEC DX JNZ DL500 POP DX ;恢復(fù)寄存器CX,DX POP CX RETDELAY ENDPPAUSES PROC ;暫停子程序 MOV AH,2 INT 10H;設(shè)置光標(biāo)位置,DH為行號(hào),DL為列號(hào) MOV AL,50H;C的ASCII碼為63H MOV AH,10 INT 10HP: MOV AH,0 INT 16H ;檢查是否有輸入,并通過(guò)AH返回掃描 ;碼,AL返回ASCII碼 CMP AH,4BH JZ P1 CMP AH,4DH JZ P1 CMP AH,50H JZ P1 CMP AH,48H JZ P1 CMP AL,S JZ P1 CMP AL,Q JZ A JMP PP1: CALL CONTINUE ;調(diào)用CONTINUE子程序 RETPAUSES ENDP DIRL PROC ;向左子程序 MOV AH,10 MOV AL,c INT 10H DEC DL MOV AH,10 MOV AL,0 INT 10H RETDIRL ENDPDIRR PROC ;向右子程序 MOV AH,10 MOV AL,c;輸入字符的ASCII碼 INT 10H;在當(dāng)前位置寫(xiě)字符 INC DL MOV AH,10 MOV AL,0;輸入字符的ASCII碼,0表示空格 INT 10H;在當(dāng)前位置寫(xiě)字符 RETDIRR ENDP DIRU PROC ;向上子程序 MOV AH,10 MOV AL,c INT 10H DEC DH MOV AH,10 MOV AL,0 INT 10H RETDIRU ENDP DIRD PROC ;向下子程序 MOV AH,10 MOV AL,c INT 10H INC DH MOV AH,10 MOV AL,0 INT 10H RETDIRD ENDPCODE ENDS END START5.2程序的調(diào)試問(wèn)題在程序編寫(xiě)完成后沒(méi)有直接實(shí)現(xiàn)功能,剛開(kāi)始練編譯文件都生成不了,錯(cuò)誤比較多,后來(lái)有些功能不能實(shí)現(xiàn),經(jīng)過(guò)修改相應(yīng)的參數(shù)實(shí)現(xiàn),在調(diào)試程序過(guò)程中出現(xiàn)的問(wèn)題主要有下面兩個(gè):1. 出現(xiàn)了按下方向后,在按下方向時(shí)不能開(kāi)始轉(zhuǎn)向開(kāi)始轉(zhuǎn)向通過(guò)單步運(yùn)行程序發(fā)現(xiàn)需要將程序?qū)OS調(diào)用的地方,需要將16H的1號(hào)改為0號(hào),才能實(shí)現(xiàn)得到相應(yīng)的結(jié)果。2. 在運(yùn)行時(shí)遇到了不能通過(guò)上下左右鍵來(lái)控制得到相應(yīng)的結(jié)果通過(guò)單步運(yùn)行程序發(fā)現(xiàn)需要將鍵盤(pán)改為鍵盤(pán)掃描碼,上下左右鍵沒(méi)有對(duì)應(yīng)的ASCII碼與之對(duì)應(yīng),需要用掃描碼。5.3運(yùn)行結(jié)果及分析在調(diào)試完全后程序得到了相應(yīng)的結(jié)果,主要能實(shí)現(xiàn)的功能有如下幾點(diǎn)(具體顯示屏幕截圖見(jiàn)附錄):1. 編譯程序后得到了出現(xiàn)了提示界面顯示PRESS DIRECTION KEY THE MOUTH CAN EAT BEANS的提示與隨機(jī)顯示分布的豆子;2. 按下S鍵開(kāi)始表示開(kāi)始吃豆子可以吃豆子,在設(shè)定的光標(biāo)位置顯示嘴巴C,“等待”吃豆子的方向鍵鍵入;3. 按下方向鍵可以顯示向各個(gè)方向吃豆子;4. 按下Q鍵后程序退出程序;5. 按下P鍵后界面顯示P表示暫停。6 小結(jié)為期一個(gè)多星期課程設(shè)計(jì)對(duì)自己來(lái)說(shuō),真可謂受益匪淺,體會(huì)頗深。從最開(kāi)始查找資料,到設(shè)計(jì)思路的比較,流程圖的繪制,編寫(xiě)相關(guān)的程序,運(yùn)行、調(diào)試
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Cefadroxil-13C6-BL-S-578-sup-13-sup-C-sub-6-sub-生命科學(xué)試劑-MCE
- 江門(mén)職業(yè)技術(shù)學(xué)院《數(shù)字合成基礎(chǔ)(AE)》2023-2024學(xué)年第一學(xué)期期末試卷
- 武漢晴川學(xué)院《理論與實(shí)踐(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江長(zhǎng)征職業(yè)技術(shù)學(xué)院《案例與論文寫(xiě)作》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024-2025學(xué)年宿州市重點(diǎn)中學(xué)數(shù)學(xué)七年級(jí)第一學(xué)期期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 江蘇省南通港閘區(qū)五校聯(lián)考2024-2025學(xué)年化學(xué)九年級(jí)第一學(xué)期期末監(jiān)測(cè)試題含解析
- 大連海洋大學(xué)《全科醫(yī)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 企業(yè)資金流動(dòng)的審計(jì)策略分析
- 遼寧特殊教育師范高等專(zhuān)科學(xué)?!冬F(xiàn)代食品營(yíng)養(yǎng)與安全自科類(lèi)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025屆北京理工大附中分校七年級(jí)數(shù)學(xué)第一學(xué)期期末教學(xué)質(zhì)量檢測(cè)試題含解析
- 貴陽(yáng)市云巖區(qū)2023-2024學(xué)年重點(diǎn)中學(xué)小升初數(shù)學(xué)入學(xué)考試卷含解析
- 紗線(xiàn)測(cè)試與質(zhì)量控制技術(shù)
- (完整版)小學(xué)六年級(jí)奧數(shù)應(yīng)用題100道附答案
- GB/T 9799-2024金屬及其他無(wú)機(jī)覆蓋層鋼鐵上經(jīng)過(guò)處理的鋅電鍍層
- 2020年遼寧省普通高中學(xué)業(yè)水平合格性考試地理真題
- 地籍圖的測(cè)繪
- 商業(yè)道德承諾書(shū)
- GB/T 4074.6-2024繞組線(xiàn)試驗(yàn)方法第6部分:熱性能
- 淺析汕頭市內(nèi)衣產(chǎn)業(yè)的現(xiàn)狀、問(wèn)題和對(duì)策
- JJG 875-2019數(shù)字壓力計(jì)行業(yè)標(biāo)準(zhǔn)
- 2024中國(guó)醫(yī)藥行業(yè)人才發(fā)展報(bào)告-智聯(lián)招聘-202404
評(píng)論
0/150
提交評(píng)論