




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課 程 設(shè) 計 報 告課程名稱 匯編語言程序設(shè)計 課題名稱 1.顯示彩色菱形 2.顯示系統(tǒng)當(dāng)前時間專 業(yè) 班 級 學(xué) 號 姓 名 指導(dǎo)教師 年 月 日歡迎下載 課 程 設(shè) 計 任 務(wù) 書 課程名稱 匯編語言程序設(shè)計 課 題 1.顯示彩色菱形2.顯示系統(tǒng)當(dāng)前時間 專業(yè)班級 學(xué)生姓名 學(xué) 號 指導(dǎo)老師 審 批 任務(wù)書下達日期 年 月 日任務(wù)完成日期 年 月 日歡迎下載一、設(shè)計內(nèi)容與設(shè)計要求 1設(shè)計內(nèi)容:通過本周的課程設(shè)計,學(xué)生能夠鞏固所學(xué)的基礎(chǔ)知識,并能夠使學(xué)生更加熟練運用匯編程序設(shè)計語言來掌握綜合匯編程序設(shè)計的方法和過程,以及為設(shè)計其它應(yīng)用軟件提供幫助,進而提高學(xué)生的軟件設(shè)計能力。(1)、編制一
2、計算比賽成績的程序,要求完成以下功能: a、9名評委,每個評委給分范圍為0100(整數(shù)); b、9名評委給分中,去掉一個最高分和一個最低分,剩余7名評委的平均分即為參賽者的得分(精確到小數(shù)點二位); c、將得分在光標位置處顯示出來。(2)、編制一程序,要求接收從鍵盤輸入的一個班的學(xué)生成績,并存放于30字的grade數(shù)組中,各數(shù)據(jù)的格式為:學(xué)號,成績1,成績2,成績5然后根據(jù)grade中的學(xué)生成績,把學(xué)生名次填入rank數(shù)據(jù)組中,并顯示出來,格式為:學(xué)號,名次(3)、利用INT 1CH(大約每秒中斷18.2次)編寫一個中斷駐留程序,要求在屏幕的右上角顯示計算機中當(dāng)前系統(tǒng)時間,顯示格式為時:分:秒
3、:1/100秒(4)、輸入一個菱形的兩條對角線長,在屏幕上用*號畫出一個彩色的菱形。(5)、設(shè)置圖形方式并顯示彩條,要求: 選擇背景色為藍色,調(diào)色板為0,然后每行顯示一種顏色,每四行重復(fù)一次,一直到整個屏幕都顯示出彩條2設(shè)計要求:掌握結(jié)構(gòu)化程序設(shè)計的主體思想,以自頂向下逐步求精的方法編制程序解決一些實際的問題,為將來編寫軟件積累一些典型的案例處理經(jīng)驗。(1)、設(shè)計正確,方案合理。(2)、界面友好,使用方便。(3)、程序精煉,結(jié)構(gòu)清晰。(4)、設(shè)計報告5000字以上,含程序設(shè)計說明,用戶使用說明,源程序清單及程序框圖。(5)、上機演示。(6)、按學(xué)號順序選課題號,并在規(guī)定的時間內(nèi)獨自完成相關(guān)課題
4、的匯編源程序編歡迎下載寫、調(diào)整和運行。源程序及編譯生成各文件均保存在軟盤中; (7)、按本任務(wù)書的要求,按附錄的要求編寫課程設(shè)計報告(Word文檔格式)。并用A4的復(fù)印紙打印并裝訂; 二、進度安排第 18 周: 星期1 下午2:00-5:30 星期2 下午2:00-5:30 星期4 下午2:00-5:30 附:課程設(shè)計報告裝訂順序:封面、任務(wù)書、目錄、正文、評分、附件(A4大小的圖紙及程序清單)。 正文的格式:一級標題用3號黑體,二級標題用四號宋體加粗,正文用小四號宋體;行距為22。正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實現(xiàn)(至少要有一個主要
5、模塊的流程圖);四、程序調(diào)試;五、總結(jié);六、附件(所有程序的原代碼,要求對程序?qū)懗霰匾淖⑨專?。正文總字?shù)要求在5000字以上(不含程序原代碼)。歡迎下載 目錄課題一:畫出一個彩色的菱形1一、 課題的主要功能1二、 課題的功能模塊的劃分2三、 主要功能的實現(xiàn)4四、 程序調(diào)試5五、 總結(jié)6課題二:顯示計算機中當(dāng)前系統(tǒng)時間7一、 課題的主要功能7二、 課題的功能模塊的劃分7三、 主要功能的實現(xiàn)9四、 程序調(diào)試10五、 總結(jié)11附件(源代碼)121. 畫出一個彩色的菱形122.顯示計算機中當(dāng)前系統(tǒng)時間17歡迎下載課題一:畫出一個彩色的菱形1、 課題的主要功能輸入一個菱形的兩條對角線長,在屏幕上用*號
6、畫出一個彩色的菱形。程序運行時會有提示要求用戶輸入菱形的對角線長。在界面上用戶須分別輸入菱形的橫向和豎向?qū)蔷€長。程序會跟據(jù)輸入的對角線長度計算出菱形所在的一個矩形區(qū)域(設(shè)置雙重循環(huán)的參數(shù)),然后以(0,0)為原點橫向為X軸,豎向為Y軸,建立坐標系。先確定菱形的左頂點坐標為(0,10),然后根據(jù)對角線長計算下頂點的坐標(L/2,10+W/2),再將菱形分成四個區(qū)域,在左下角的區(qū)域內(nèi)判斷要顯示的*,再根據(jù)對稱的關(guān)系將其他三個區(qū)域填滿。左下角區(qū)域的判斷是根據(jù)那兩個點的坐標建立的一次不等式,滿足條件的顯示。用BIOS的02H功能來設(shè)置光標位置,用09H功能來設(shè)置光標的位置顯示字符及其屬性,屬性即為顯
7、示字符的顏色,每顯示一個顏色就換一種。2、 課題的功能模塊的劃分 輸入對角線長 計算參數(shù) 設(shè)置光標位置 判斷是否滿足條件 顯示圖形 結(jié)束 圖1系統(tǒng)功能模塊本課題共分為五個模塊,即輸入對角線模塊,計算參數(shù)模塊,設(shè)置光標模塊,判斷模塊,顯示圖形模塊。輸入模塊: MOV AH,01H INT 21H 分為四個字符輸入,第一,二個字符為橫向長L,先將第一個字符轉(zhuǎn)化為數(shù)值 SUB AL,30H MUL N 兩位數(shù),再加上第二個字符的數(shù)值個位數(shù)變?yōu)橐粋€兩位數(shù),第二個兩位數(shù)同理得豎向長W。計算參數(shù)模塊:本程序包括A,B,E,X,Y,I,OLD,NEI,WAI參數(shù)需要計算,A=W/2,B=L/2,E=B,X=
8、DL,Y=DH,I控制字符顏色0-7循環(huán),LEA OLD,ATRI,NEI=B+1,WAI=A+1。設(shè)置光標模塊:將光標移至(0,10+A),并從這點,逐行遍歷完左下角的矩形區(qū)域。其他三個區(qū)域根據(jù)對稱的關(guān)系移動。判斷模塊:根據(jù)DX中的內(nèi)容取出X=DL,Y=DH,代入不等式BY=AX+10,滿足條件的點就顯示出來。顯示圖形模塊:若此點滿足條件就顯示出來,每顯示一次顏色就變一次,然后將光標移至其他三個區(qū)域?qū)ΨQ的點顯示,其他三個區(qū)域的坐標為(2E-X,Y) (2E-X,20-Y) (X,20-Y)。3、 主要功能的實現(xiàn) 本程序主要功能是兩層循環(huán)中的判斷和顯示部分 PUSH CX MOV CX,NEI
9、 PUSH CX設(shè)置光標位置 獲得X,Y BY=AX+10? N Y 在此點顯示*,顏色屬性改變 其他三個對稱區(qū)域顯示*,顏色屬性改變 POP CX INC DL DEC CX CX=0? NDEC DH MOV DL,0POP CX DEC CX Y CX=0? N 結(jié)束 Y 圖2 判斷和顯示流程圖4、 程序調(diào)試1.輸入橫向長度和豎向長度 圖 3 彩色菱形2.輸入橫向長度和豎向長度 圖4 彩色菱形5、 總結(jié)課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對我們的實際工作能力的具體訓(xùn)練和考察過程。通過幾天的課程設(shè)計使我們懂得了理論與實際相結(jié)合是很重
10、要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論。在設(shè)計的過程中遇到問題,可以說得是困難重重,所以在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對一些前面學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,通過這次課程設(shè)計之后,我們把前面所學(xué)過的知識又重新溫故了一遍。在課程設(shè)計過程中,收獲知識,提高能力,懂得怎么樣去制定計劃,怎么樣去實現(xiàn)這個計劃。不畏艱難,勇往直前!課題二:顯示計算機中當(dāng)前系統(tǒng)時間1、 課題的主要功能 本課題的主要功能是利用INT 1CH(大約每秒中斷18.2次)編寫一個中斷駐留程序,要求在屏幕的右上角顯示計算機中當(dāng)前系統(tǒng)時間,顯示格式為時:分:秒:1/10
11、0秒完成該課題的系統(tǒng)時間功能,需要不斷地同步顯示當(dāng)前系統(tǒng)時間,這里我們需要用到INT 1CH,平均每秒中斷18.2次,以這樣的頻率同步顯示系統(tǒng)時間以滿足人們的視覺效果。完成系統(tǒng)時間同步的前提下還要讀取系統(tǒng)時間和顯示系統(tǒng)時間。2、 課題的功能模塊的劃分 2.1 功能模塊解釋 課題的功能模板就是在定義好數(shù)據(jù)之后,完成讀取當(dāng)前系統(tǒng)時間和顯示當(dāng)前系統(tǒng)時間兩大模塊。包括獲取原終端類型、保存原中斷類型、設(shè)置新的中斷類型、執(zhí)行中斷處理程序、應(yīng)用堆棧保護現(xiàn)場、讀取系統(tǒng)時間,然后分別將時間的BCD碼轉(zhuǎn)換為字符,在制定內(nèi)存位置寫入時間然后顯示時間,最后恢復(fù)現(xiàn)場,中斷返回。 該課題采用了調(diào)用子程序的思想來完成,主體
12、功能都通過子程序來完成,中斷模塊、讀取系統(tǒng)時間模塊、顯示系統(tǒng)模塊、現(xiàn)場保護模塊及現(xiàn)場恢復(fù)模塊。通過調(diào)用子程序的辦法使本程序更加具有條理性,其中現(xiàn)場保護是為了使寄存器中有用的數(shù)據(jù)保存起來,讓寄存器進行其他運算,現(xiàn)場恢復(fù)是使原來保存起來的有用的數(shù)據(jù)進行恢復(fù),讀取系統(tǒng)當(dāng)前時間并使屏幕顯示的時間與系統(tǒng)當(dāng)前時間同步變化,這就不得不使用中斷模塊,運用INT 1CH,可以每秒中斷18.2次,足以滿足視覺上的同步。 2.2 功能模塊流程圖 主程序顯示當(dāng)前系統(tǒng)時間 子程序模塊 中斷模塊顯示當(dāng)前系統(tǒng)時間讀取系統(tǒng)當(dāng)前時間現(xiàn)場恢復(fù)及保護模塊 圖1 功能模塊流程圖3、 主要功能的實現(xiàn)系統(tǒng)時間功能調(diào)用 實現(xiàn)獲取當(dāng)前系統(tǒng)時
13、間并顯示當(dāng)前系統(tǒng)時間。 步驟一:定好數(shù)據(jù)之后,在DOS環(huán)境下,用2C號取系統(tǒng)時間的功能,將時賦值給CH,將分賦值給CL,將秒賦值給DH,將1/100賦值給DL。系統(tǒng)時間顯示 子函數(shù)INT 1C來具體實現(xiàn)當(dāng)前系統(tǒng)時間,將從系統(tǒng)中讀取的時、分、秒分別送入內(nèi)存T到T7,然后塊裝入指令把SI指向的存儲單元讀入累加器。 保護現(xiàn)場 開 始 讀取系統(tǒng)時間獲取原中斷類型1CH 分別將時間的BCD碼轉(zhuǎn)換為字符 保存原中斷類型在指定的位置寫入時間并顯示時間設(shè)置新的中斷類型 恢復(fù)現(xiàn)場執(zhí)行中斷處理程序 中斷返回 圖2 時間顯示流程圖4、 程序調(diào)試程序運行顯示當(dāng)前系統(tǒng)時間5、 總結(jié)本文的主要內(nèi)容是介紹用匯編語言(808
14、6/DOS)實現(xiàn)一個顯示系統(tǒng)時間的程序,在界顯示系統(tǒng)時間,在設(shè)計過程中,首先是按照題目所給的具體要求,根據(jù)自己的設(shè)計思路,畫出流程圖,然后查閱相關(guān)資料,寫出流程圖中的各段子程序,把子程序放在MasmforWindows集成環(huán)境中進行調(diào)試,找出程序中的錯誤,并進行修改和不斷完善,以得到符合要求的程序。有了這些子程序后,我們就可以根據(jù)要求寫出源程序,但在寫源程序的過程中遇到了很多困難,經(jīng)過反復(fù)調(diào)試跟修改,最終得到了符合要求的源程序。一周的匯編語言課程設(shè)計結(jié)束了,我的收獲很大。通過課程設(shè)計的編程和對編程過程中遇到的問題的思考,有效的提高了我對匯編的認識和理解,切實的提高了我的編程能力,補全了我的不足
15、。通過這次課程設(shè)計,我鞏固所了學(xué)過的知識,能用匯編語言熟練地運用順序、選擇、循環(huán)三大結(jié)構(gòu),進一步掌握了各個指令的功能,特別是轉(zhuǎn)向指令,掌握了子程序的定義及調(diào)用,以及正確地運用DEBUG指令。在整個程序的編寫中,調(diào)試占了很大部分的時間。要想寫好匯編語言的程序,必須認真對待代碼的每一個細節(jié),還必須熟練的掌握debug命令,這對程序的調(diào)試是非常重要的。通過這次實際動手能力的培養(yǎng),我進一步熟悉了匯編語言的結(jié)構(gòu)和使用方法,基本達到了能獨立閱讀、編制和調(diào)試一定規(guī)模的匯編語言程序的水平。另外,就是我對這門課內(nèi)容的學(xué)習(xí)感受。要學(xué)好這門課,以我愚見無非有以下三點:1) 課本上應(yīng)該記住的東西一定要記住,記不住就沒
16、法做題,(例如指令,尋址方式等等)若記住你做題就會做,看程序也就能看懂,記不住見了它就會對它不知所措,一臉茫然。2)預(yù)習(xí)很重要,這一點不僅適用于這一科的學(xué)習(xí),確切的說它適用于任何一科,有的同學(xué)這一點作的不好,上課只知道豎著兩個耳朵傻傻的聽老師講課,也不注意動動腦子隨時思考,延續(xù)以前填鴨式的學(xué)習(xí)方式,想讓老師講給所有的東西,殊不知很多東西還要自己從書本獲得。這就難免出現(xiàn)聽不懂的情況,這好比讓一個不懂外語的人聽外語錄音,在他的心里,聽外語就像聽天書一般,所以說你要學(xué)一點新東西,前提是你對它要有一點了解,不然的話你所作的一切只不過是在浪費時間,浪費金錢,浪費生命。3)理論與實踐相結(jié)合,不懂的地方應(yīng)勤
17、問老師勤問同學(xué),直到把它搞懂為止。 總之,這學(xué)期的課程設(shè)計,讓我們學(xué)到了很多,受益匪淺。附件(源代碼)1. 畫出一個彩色的菱形DATAS SEGMENT ;此處輸入數(shù)據(jù)段代碼 ATRI DB 0AH,0BH,0CH,09H,0DH,08H,0EH L DW ? W DW ? N DB 10 A DB ? B DB ? E DB ? D DB ? X DB ? Y DB ? I DB 0 OLD DW ? NEI DW ? WAI DW ?DATAS ENDSSTACKS SEGMENT PARA STACK STACK ;此處輸入堆棧段代碼STACKS ENDSCODES SEGMENT AS
18、SUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX MOV AH,0 MOV AL,3 INT 10H MOV AH,01H INT 21H PUSH BX SUB AL,30H MUL N MOV L,AX MOV AH,01H INT 21H SUB AL,30H MOV CX,L MOV AH,0 ADD CX,AX MOV L,CX MOV AH,01H ;空格 INT 21H MOV AH,01H ;寬 INT 21H SUB AL,30H MUL N MOV W,AX MOV AH,01H INT 21H SU
19、B AL,30H MOV BX,W MOV AH,0 ADD BX,AX MOV W,BX LEA SI,ATRI MOV OLD,SI MOV BL,2 MOV AX,W DIV BL MOV A,AL ;A MOV AX,L DIV BL MOV E,AL MOV B,AL ;B MOV BL,E MOV AL,2 MUL BL MOV E,AL MOV BL,2 MOV AX,W DIV BL INC AL MOV AH,0 ; MOV WAI,AX ;外循環(huán) MOV BL,2 MOV AX,L DIV BL INC AL MOV AH,0 MOV NEI,AX ;光標位置 ; MOV
20、BL,2 MOV AX,W DIV BL ADD AL,10 MOV DH,AL MOV DL,0 ; POP BX MOV AH,02H INT 10H MOV CX,WAILOOP1: PUSH CX ;外循環(huán) MOV CX,NEI ;內(nèi)循環(huán)CX; LOOP2: PUSH BX PUSH CX ;內(nèi)循環(huán) MOV AH,02H INT 10H MOV X,DL ;X坐標 MOV Y,DH ;Y坐標 MOV AL,B MUL Y MOV BX,AX ;不等式左邊BX MOV AL,A MUL X MOV CX,AX MOV AL,10 MUL B ADD CX,AX ;不等式右邊CX CMP
21、BX,CX JA NEXT ; ;顯示程序 MOV AX,092AH MOV BL,SI ;SI為顏色值 MOV CX,1 INT 10H MOV BL,X MOV BH,0 PUSH DX PUSH BX MOV AL,E SUB AL,X MOV DL,AL ;1_X MOV AH,02H INT 10H MOV AX,092AH MOV BL,SI ;SI為顏色值 MOV CX,1 INT 10H ;顯示1號點 MOV AL,20 SUB AL,Y MOV DH,AL ;2_Y MOV AH,02H INT 10H MOV AX,092AH MOV BL,SI ;SI為顏色值 MOV C
22、X,1 INT 10H ;顯示2號點 POP BX MOV DL,BL MOV AH,02H INT 10H MOV AX,092AH MOV BL,SI ;SI為顏色值 MOV CX,1 INT 10H ;顯示3號點 ; INC I INC SI CMP I,7 JNE BLAG4 MOV I,0 MOV SI,OLD BLAG4: ; POP DX NEXT: ;不顯示跳的這 POP CX POP BX INC DL DEC CX JNZ LOOP2 ;內(nèi)循環(huán)結(jié)束 DEC DH MOV DL,0 POP CX DEC CX JNZ LOOP1 ;外循環(huán)結(jié)束 MOV DX,1310H MOV
23、 AH,02H INT 10H MOV AH,4CH INT 21HCODES ENDS END START2.顯示計算機中當(dāng)前系統(tǒng)時間DATAS SEGMENT cursor equ 45h attrib equ 2fh;此處輸入數(shù)據(jù)段代碼 DATAS ENDSSTACKS SEGMENT ;此處輸入堆棧段代碼STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX jmp go oldcur dw ? old1c dw 2 dup(?) newint1c: pushf c
24、all dword ptr cs:old1c push ax push bx push cx push dx xor bh,bh mov ah,3 int 10h mov cs:oldcur,dx mov ah,2 xor bh,bh mov dx,012FH int 10h mov ah,2ch int 21h ;- ;ch=hour ;cl=minute ;dh=second ;dl=1/100 second ;- push dx push cx ;show hour pop bx push bx call showhour call showcolon ;show minute pop
25、bx call showmin call showcolon ;show second pop bx push bx call showsec call showcolon ;show 10 msec pop bx call showmin mov dx,cs:oldcur mov ah,2 xor bh,bh int 10h pop dx pop cx pop bx pop ax iret showhour proc near push bx pop ax mov cl,8 shr ax,cl mov bl,10 div bl add al,30h call show call curmove mov cl,8 shr ax,cl add al,30h call show call curmove ret showhour endp showmin proc near push bx pop ax mov cl,8 shl ax,cl shr ax,cl mov bl,10 div bl add al,30h call show call curmove mov cl,8 shr ax,cl add al,30h call show call
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國電動潔面儀行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國甲基異丁基甲酮行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國生日蠟燭行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國甘草霜行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國特殊群體教育行業(yè)市場深度研究及發(fā)展前景投資可行性分析報告
- 《護理值班與交接班制度》考試試題
- 商業(yè)培訓(xùn)的未來之路AR技術(shù)的應(yīng)用與推廣研究
- 培養(yǎng)情緒智力提升學(xué)生綜合能力的關(guān)鍵
- 商業(yè)環(huán)境中技術(shù)風(fēng)險管理的策略與方法
- 教育數(shù)字化轉(zhuǎn)型的實踐與探索
- 打胎后賠償協(xié)議書
- 養(yǎng)生店合作合同協(xié)議書
- 2025年中級會計實務(wù)考試提升實務(wù)能力試題及答案
- 膜分離聯(lián)合工藝處理工業(yè)廢氣研究-全面剖析
- 2025天然氣管道工程安裝合同協(xié)議書
- 銀行安全培訓(xùn)
- 醫(yī)學(xué)教育中的臨床試驗實踐教學(xué)探索
- 《煙花爆竹安全》課件
- 2025年四川省成都市新都區(qū)特需人才引進34人歷年高頻重點模擬試卷提升(共500題附帶答案詳解)
- 低血糖危像癥狀及救治護理課件
- 梅毒課件完整版本
評論
0/150
提交評論