匯編課設報告
《匯編課設報告》由會員分享,可在線閱讀,更多相關(guān)《匯編課設報告(25頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 課 程 設 計 報 告 課程名稱 匯編語言程序設計 課題名稱 中斷應用程序設計 專 業(yè) 計算機科學與技術(shù) 2010年 9 月 5 日 一、設計內(nèi)容與設計要求 1.設計內(nèi)容:通過本周的課程設計,學生能夠鞏固所學的基礎知識,并能夠使學生更加熟練運用匯編程序設計語言來掌握綜合匯編程序設計的方法和過程,以及為設計其它應用軟件提供幫助,進而提高學生的軟件設計能力。 1、編制一計算比賽成績的程序,要求完成以下功能: (1) 9名評委,每個評委給分范圍為0~10(整數(shù));
2、(2) 9名評委給分中,去掉一個最高分和一個最低分,剩余7名評委的平均分即為參賽者的得分(精確到小數(shù)點二位); (3) 將得分在光標位置處顯示出來。 2、編制一程序,要求接收從鍵盤輸入的一個班的學生成績,并存放于30字的grade數(shù)組中,各數(shù)據(jù)的格式為: 學號,成績1,成績2,…,成績5 然后根據(jù)grade中的學生成績,把學生名次填入rank數(shù)據(jù)組中,并顯示出來,格式為: 學號,名次 3、利用INT 1CH(大約每秒中斷18.2次)編寫一個中斷駐留程序,要求在屏幕的右上角顯示計算機中當前系統(tǒng)時間,顯示格式為 時:分:秒:1/100秒 4、輸入一個菱形的兩條對角線長,在屏幕
3、上用‘*’號畫出一個彩色的菱形。 5、設置圖形方式并顯示彩條,要求: 選擇背景色為藍色,調(diào)色板為0,然后每行顯示一種顏色,每四行重復一次,一直到整個屏幕都顯示出彩條 2.設計要求: 掌握結(jié)構(gòu)化程序設計的主體思想,以自頂向下逐步求精的方法編制程序解決一些實際的問題,為將來編寫軟件積累一些典型的案例處理經(jīng)驗。 1. 設計正確,方案合理。 2. 界面友好,使用方便。 3. 程序精煉,結(jié)構(gòu)清晰。 4. 設計報告5000字以上,含程序設計說明,用戶使用說明,源程序清單及程序框圖。 5. 上機演示。 6. 按學號順序選課題號,并在規(guī)定的時間內(nèi)獨自完成相關(guān)課題的匯編源程序編寫、
4、調(diào)整和運行。源程序及編譯生成各文件均保存在軟盤中; 7. 按本任務書的要求,按附錄的要求編寫《課程設計報告》(Word文檔格式)。并用A4的復印紙打印并裝訂; 二、進度安排 第 1 周 上機時間 星期1 布置任務 星期2 8:00—12:00 星期3 8:00—12:00 星期4 8:00—12:00 附: 課程設計報告裝訂順序:封面、任務書、目錄、正文、評分、附件(A4大小的圖紙及程序清單)。 正文的格式:一級標題用3號黑體,二
5、級標題用四號宋體加粗,正文用小四號宋體;行距為22。 正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實現(xiàn)(至少要有一個主要模塊的流程圖);四、程序調(diào)試;五、總結(jié);六、附件(所有程序的原代碼,要求對程序?qū)懗霰匾淖⑨專? 正文總字數(shù)要求在5000字以上(不含程序原代碼)。 目 錄 一、課程的主要功能1 二、功能模塊的劃分2 三、主要功能的實現(xiàn) 四、程序調(diào)試 五、總結(jié) 六、附件 1、課程的主
6、要功能 1、課題的主要功能: 班級學生成績處理主要要求我們從鍵盤輸入一個班的成績,包括學生的學號,學生的各科成績(總共五科),將輸入的學生信息存放在數(shù)組grade中,然后用編寫的程序來實現(xiàn)計算和顯示學生學號和名次的功能,為了實現(xiàn)該項功能,將通過計算每個學生的平均成績,并將其進行排序來實現(xiàn)。結(jié)果保存在rank數(shù)組中。使用者可以根據(jù)具體的菜單選項進行操作。例外,為了使程序大的功能較為完整點,為了讓使用更好的使用該程序,我在原來的要求上增加了幾個功能模塊,如查詢、刪除和退出功能。
7、 2、功能模塊的劃分 1、模塊圖 整個程序有5個功能模塊構(gòu)成,分別是輸入信息模塊、顯示信息模塊、查詢信息模塊、刪除信息模塊和退出菜單模塊,他們之間的關(guān)系如下模塊圖所示: 開始 選擇功能 I L S D Q 刪除信息 顯示信息 錄入信息 查詢信息 學號、名次 退出程序 結(jié)束 2、程序模塊分析: 此程序主要分為大模塊,包
8、括主模塊,輸入模塊和輸出模塊 1.主模塊: 從鍵盤輸入學生的學號、分數(shù),并在屏幕上顯示學生的學號和名次,其功能是根據(jù)輸入的學生分數(shù),計算并顯示學生名次。此處采用冒泡排序法,并且一個學生的名次等于分數(shù)高于該生的學生人數(shù)加1。 2.輸入模塊: 以學號為序從鍵盤輸入學生分數(shù),各個分數(shù)之間用逗號隔開,最后用回車符結(jié)束。再把學生成績存入grade數(shù)組。其功能是接收學生的分數(shù),并將從鍵盤輸入的十進制數(shù)轉(zhuǎn)換為二進制。 3.輸出模塊: 從RANK數(shù)組取得學生名次,把學生名次以學號為序在屏幕上顯示,其功能是顯示學生的名次。 4.查詢模塊: 此模塊是根據(jù)輸入的查詢方式對存在文檔里的信息進行查詢
9、,可以按學號查詢或按成績查詢,并在屏幕上顯示查詢的信息。 5.刪除模塊: 刪除模塊是在查詢模塊的基礎上對查詢的內(nèi)容進行刪除。 3、主要功能的實現(xiàn) 一、功能模塊的分析 此次班級成績處理程序使用了5個功能模塊,分別是輸入信息模塊、顯示信息模塊、查詢信息模塊、刪除信息模塊和退出菜單模塊,使用者只需要根據(jù)界面的菜單提示選擇進行相應的功能模塊就可以了。 部分功能模塊如下: 1.菜單功能源代碼: INPUT: MOV AH,0 IN
10、T 16H CMP AH,26H ;IS L? JNZ NEXT1 CALL LIST JMP MAINLOOP NEXT1: CMP AH,17H ;IS I? JNZ NEXT2 CALL INSERT JMP MAINLOOP NEXT2: CMP AH,1FH ;IS S? JNZ NEXT3
11、 MOV STATE,S CALL SEARCH JMP MAINLOOP NEXT3: CMP AH,20H ;IS D? JNZ NEXT4 MOV STATE,D CALL SEARCH JMP MAINLOOP NEXT4: CMP AH,10H ;IS Q? JNZ INPUT RET 此功能根據(jù)提示選擇相應的選
12、項進行操作,“S”為查詢功能,“I”為輸入功能,“D”為刪除功能,“L”為顯示功能,“Q”則退出選項。 2、輸入功能模塊部分代碼 GETSTR MACRO ADDR LOCAL EXT,CHAR,SPACE MOV BX,0 SPACE: MOV &ADDR&[BX],0 INC BX CMP BX,10 JL SPACE MOV BX,0 CHAR: MOV AH,1 INT 21H
13、 CMP AL,13 JZ EXT CMP AL,10 JZ EXT CMP BX,9 JG CHAR MOV &ADDR&[BX],AL INC BX JMP CHAR EXT: ENDM 此輸入信息模塊用數(shù)組來接受學生信息,并且限制了信息的長度,在程序中可連續(xù)調(diào)用該模塊來滿足用戶連續(xù)輸入學生信息的要求,并將其信息存入到了grade數(shù)組中。 3、
14、刪除模塊和查詢模塊有著大部分相同的代碼,刪除模塊就包含了查詢模塊,它首先就必須根據(jù)輸入的學生信息在文件數(shù)組里對信息進行查詢后才能進行刪除的操作,其部分代碼為: CMPLOOP: MOV AH,14H LEA DX,MYFCB INT 21H CMP AL,01 JNZ NEXT JMP EXITS NEXT: CLD MOV AL,10
15、 MUL WAY LEA SI,VALUE LEA DI,N ADD DI,AX MOV CX,10 REPE CMPSB JNZ CMPLOOP SHOW PRINT MOV FLAG,1 MOV CL,RECID CMP STATE,D JNE RETURN DEL: MOV AH,14H
16、 LEA DX,MYFCB INT 21H CMP AL,0 JNZ W_END SUB RECID,2 MOV AH,15H LEA DX,MYFCB INT 21H INC RECID JMP DEL W_END: CLD LEA DI,MYDTA MOV
17、 CX,50 MOV AL,0 REP STOSB SUB RECID,1 MOV AH,15H MOV MYDTA,1AH LEA DX,MYFCB INT 21H SHOW DELOK RETURN: MOV RECID,CL JMP CMPLOOP EXITS: CALL CLOSEF CMP FLAG,0
18、 JNZ EXT SHOW NOTHIS EXT: MOV FLAG,0 POP DX POP CX POP BX POP AX RET SEARCH ENDP 查詢或刪除功能可以根據(jù)學生的學號或各科成績來進行查詢或刪除,如果輸入有誤將提示:error,無誤的話就可以直接輸入信息進行查詢和刪除的操作。 二、流程圖舉例: 查詢功能模塊流程圖
19、開始 選擇功能選項 S Q 選擇查詢方式 按序號查詢 按科目成績 查詢 顯示查詢信息 結(jié)束 4、程序調(diào)試 1.首先調(diào)試的時候,總是不能顯示之前所輸入的學生信息數(shù)據(jù),每次都必須重新輸入,通過請教老師同學得到了解決,在程序里使用了文件的管理,將每次的輸入都增添在了文檔里,每次輸入、刪除后的信息都保存在該文件中。程序也用了“MYDTA LABEL?。拢伲裕牛斫W生信息的磁盤卷標,使程序更加完善。 2.這個程序要求寫入
20、信息并排學生名次,計算學生平均分倒是很簡單,要是單獨將平均分排序也不太難,問題是我不知道將其綜合,名次老和學生學號對不上號,不過在老師的幫助下也得到了解決。 3.程序算法解決完了就是要注意一些較為基礎的問題,在定義變量的時候不能用特殊的名稱,否則會造成那很多錯誤,造成不必要的時間浪費。 4.我的程序菜單較為簡單,調(diào)試時輸入功能界面如下: 查詢或刪除功能的界面如下:如圖一所示,為輸入錯誤的信息導致界面顯示ERROR,圖二則是正常的情況下運行的界面。 圖一
21、 圖二 5、總結(jié) 此次匯編課程設計是在開學的第一周,雖說是已經(jīng)開學了,但是學習狀態(tài)可以說還是零。當接到任務書時我的心里有說不出的高興,班級學生成績處理,這個課題對我來說再熟悉不過了,從大一的C課程設計到C++面對對象的課程設計,我一直做著與學生成績相關(guān)的題目,雖然還沒從假期的松散狀態(tài)緩過來,但是一點也不怕,感覺自己能輕松完成這熟悉的課設,但是事實卻讓我不敢想象。 班級成績處理程序設計要求從鍵盤輸入學生的基本信息,如學生的學號、各科的成績,然后將信息存入grade數(shù)組中,并要求處理數(shù)據(jù)將相應的學生學號和名次存放在
22、rank數(shù)組中,并隨時可以根據(jù)使用者的意思顯示出來。面對看上去這么簡單的題目,我竟一開始寫代碼就不知道該怎么動筆。我想首先用數(shù)組來存放學生的成績,并通過編簡單的程序計算每學生的平均,可卻不知道該怎么將學生的學號和平均成績捆綁在一起來進行排序。想到方法又卡住了,就這樣想了很久也沒能解決問題。要做好一個簡單的程序首先就是要將思路想好,然后才能動筆編個好多程序,但是一開始我就沒一個完整的思路,想到這我是越來越失去信心了。不過在老師的精心輔導下,我還是努力完成了任務,沒有放棄。 “匯編語言程序設計”是計算機專業(yè)的重要專業(yè)基礎課,是從事計算機研究與應用的基礎,是計算機專業(yè)必修的核心課程之一,為更好的培
23、養(yǎng)學生綜合運用所學知識、發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力,對這門課開設了課程設計。匯編語言程序設計是一門實踐性很強的課,能很好的培養(yǎng)學生的創(chuàng)造性和動手能力,所以課程設計也是對學生實際工作能力的具體訓練和考察過程。隨著科學技術(shù)發(fā)展的日新日異,匯編語言已經(jīng)成為當今計算機應用中空前活躍的領域,是很多技術(shù)的基礎在生活中可以說得是無處不在。所以認真做好這次課程設計對我們來說很重要,從中我也是收益很多。也有很多感受。 首先,通過這次匯編語言程序設計,讓我更深地體會到了上機操作有助于將書本上的知識系統(tǒng)化、現(xiàn)實化,更加鍛煉了我自己的查漏補缺的能力。書本上的知識永遠是死的,只有將其運用到實際的生活
24、中才會變成活的,而課設恰好給了我們這樣一個機會。 其次,課程設計是一個綜合性的課程,不僅能檢測我們的學習這門課的熟練程度,還能讓我們溫習課程,達到復習和鞏固的效果,在課程設計的過程中我們不斷地遇到問題,不斷的在圖書館和網(wǎng)上、書本上查找資料,不斷的向老師、同學請教問題,所以慢慢的解決問題,而這就是一個不斷提升自己的過程。課程設計也教會了我們怎么樣利用自己身邊有的資源,如書本、網(wǎng)絡、老師和同學,怎樣和同學互相學習、互相幫助、互相合作。 總之,此次課程設計算是個較為完整的程序,將學到過的知識如中段程序、輸入輸出程序,DOS功能的調(diào)用,指令系統(tǒng)等綜合起來,讓我的知識更加系統(tǒng)化,只是還是存在些問題,
25、相信有了這次課程設計,我的學習興趣更大,一定會在今后的學習和生活中同樣做到查漏補缺,爭取做到更好。 6、附件 源程序清單: DATA SEGMENT MYFCB LABEL BYTE ; files FCB FDRIVER DB 0 FNAME DB STUDENTS FEXT DB MAO FBLOCK DW 0 RECSIZE DW 50
26、 FSIZE DW 2 DUP(?) FDATE DW ? FPATH DB 10 DUP(?) RECID DB 0 RECBK DW 2 DUP(?) SEL DB List Insert Search Delete quit >>$ PROMPT DB 13,10, Num s1 s2 s3 s4 s5 $ NUM DB 13,10, 1. NUM :$ sb1
27、 DB 13,10, 2. s1 :$ sb2 DB 13,10, 3. s2 :$ sb3 DB 13,10, 4. s2 :$ sb4 DB 13,10, 5. s3 :$ sb5 DB 13,10, 6. s3 :$ ERRMSG DB 13,10, *** ERROR ! ***$ WHICH DB 13,10,SELECT A WAY(1--5) :$ STRING DB 13,10
28、,INPUT THE VALUE :$ NOTHIS DB 13,10,NO THIS STUDENT !$ DELOK DB 13,10,THE RECORD DELET SUCCESS !$ FLAG DB 0 WAY DB ? STATE DB ? VALUE DB 10 DUP( ) PRINT DB 13,10 MYDTA LABEL BYTE N DB 10 DUP( )
29、 s1 DB 10 DUP( ) s2 DB 10 DUP( ) s3 DB 10 DUP( ) s4 DB 10 DUP( ) s5 DB 10 DUP( ) DB $ DATA ENDS SHOW MACRO ADDR MOV AH,9 LEA DX,ADDR INT 21H ENDM GETS
30、TR MACRO ADDR LOCAL EXT,CHAR,SPACE MOV BX,0 SPACE: MOV &ADDR&[BX],0 INC BX CMP BX,10 JL SPACE;小于10就轉(zhuǎn)移,即BX連續(xù)自增(限制數(shù)組中一個元素的長度) MOV BX,0 CHAR: MOV AH,1 INT 21H;輸入的一個字符放到AL中 CMP AL,13 JZ
31、 EXT CMP AL,10 JZ EXT;輸入回車鍵和空格鍵的話就退出輸入 CMP BX,9 JG CHAR;大于9再次輸入 MOV &ADDR&[BX],AL;將輸入的數(shù)據(jù)放在ADDR數(shù)組中 INC BX JMP CHAR ;最長輸入10個元素 EXT: ENDM CODE SEGMENT ASSUME CS:CODE,DS:DATA,E
32、S:DATA MAIN PROC FAR PUSH DS;將DS進棧 SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV ES,AX MOV AH,1AH LEA DX,MYDTA INT 21H JMP INIT; MAINLOOP: MOV AH,1 I
33、NT 21H;輸入一個字符保存在AL中 CMP AL, JNE MAINLOOP;AL不為空格鍵就轉(zhuǎn)移再次輸入,即輸入空格鍵就結(jié)束了 INIT: MOV AH,6 ;屏幕初始化 MOV AL,0 MOV CH,0 MOV CL,0 MOV DH,24 MOV DL,79 MOV BH,7 INT 10H
34、 MOV AH,2;置光標位置 MOV DH,1 MOV DL,1 MOV BH,0 INT 10H SHOW SEL ;顯示目錄 INPUT: MOV AH,0 INT 16H ;建文件 CMP AH,26H ;是L? JNZ NEXT1 CALL LIST J
35、MP MAINLOOP NEXT1: CMP AH,17H ; 是I? JNZ NEXT2 CALL INSERT JMP MAINLOOP NEXT2: CMP AH,1FH ; 是S? JNZ NEXT3 MOV STATE,S CALL SEARCH JMP MAINLOOP NEXT3: CMP AH,20H ;
36、是D? JNZ NEXT4 MOV STATE,D CALL SEARCH JMP MAINLOOP NEXT4: CMP AH,10H ; 是Q? JNZ INPUT RET MAIN ENDP LIST PROC NEAR ;列出學生信息 CALL OPENF MOV RECID,0 CMP FLAG,0
37、 JZ CONTINUE RET CONTINUE: SHOW PROMPT LISTLOOP: MOV AH,14H LEA DX,MYFCB INT 21H CMP AL,01 JNE N1 JMP FINISH N1: CMP AL,0 JE N2 JMP FINISH N2:
38、 SHOW PRINT JMP LISTLOOP FINISH: CALL CLOSEF RET LIST ENDP INSERT PROC NEAR ;插入學生的信息 MOV RECID,0 CMP FLAG,0 JZ READL RET READL: MOV AH,14H L
39、EA DX,MYFCB INT 21H CMP AL,01 JE WRITES CMP AL,0 JE READL WRITES: SHOW NUM ;插入學生信息 GETSTR N SHOW sb1 GETSTR s1 SHOW sb2 GETSTR s2 SHOW sb3
40、 GETSTR s3 SHOW sb4 GETSTR s4 SHOW sb5 GETSTR s5 MOV AH,15H ;寫入文件 LEA DX,MYFCB INT 21H CALL CLOSEF RET INSERT ENDP SEARCH PROC NEAR PUSH AX
41、 PUSH BX PUSH CX PUSH DX CALL OPENF MOV RECID,0 CMP FLAG,0 JZ START RET START: SHOW NUM SHOW sb1 SHOW Sb2 SHOW sb3 SHOW sb4 SHOW sb5
42、 SHOW WHICH INWAY: MOV AH,1 ;根據(jù)查找選項查詢學生信息 INT 21H CMP AL,1 JL INWAY CMP AL,5 JG INWAY SUB AL,31H MOV WAY,AL SHOW STRING GETSTR VALUE S
43、HOW PROMPT CMPLOOP: MOV AH,14H LEA DX,MYFCB INT 21H CMP AL,01 JNZ NEXT JMP EXITS NEXT: CLD MOV AL,10 MUL WAY LEA SI,VALUE LEA DI,N
44、 ADD DI,AX MOV CX,10 REPE CMPSB JNZ CMPLOOP SHOW PRINT MOV FLAG,1 MOV CL,RECID CMP STATE,D JNE RETURN DEL: MOV AH,14H ; 將查詢到的信息刪除 LEA DX,MYFCB INT
45、 21H CMP AL,0 JNZ W_END SUB RECID,2 MOV AH,15H LEA DX,MYFCB INT 21H INC RECID JMP DEL W_END: CLD LEA DI,MYDTA MOV CX,50 MOV AL,0 REP STOSB
46、 SUB RECID,1 MOV AH,15H MOV MYDTA,1AH LEA DX,MYFCB INT 21H SHOW DELOK RETURN: MOV RECID,CL JMP CMPLOOP EXITS: CALL CLOSEF CMP FLAG,0 JNZ EXT SHOW NOTHIS EXT: MOV
47、 FLAG,0 POP DX POP CX POP BX POP AX RET SEARCH ENDP OPENF PROC NEAR ;打開或建立文件 MOV AH,0FH LEA DX,MYFCB INT 21H OR AL,AL JNZ CREATE RET C
48、REATE: MOV AH,16H LEA DX,MYFCB INT 21H OR AL,AL JNZ SETFLAG RET SETFLAG: MOV FLAG,1 SHOW ERRMSG RET OPENF ENDP CLOSEF PROC NEAR MOV AH,10H LEA DX,MYFCB I
49、NT 21H RET CLOSEF ENDP CODE ENDS END MAIN 計算機科學與技術(shù)系課程設計評分表 課程名稱: 項 目 評 價 設計方案的合理性與創(chuàng)造性 設計與調(diào)試結(jié)果 設計說明書的質(zhì)量 答辯陳述與回答問題情況 課程設計周表現(xiàn)情況 綜合成績 教師簽名: 日 期: (注:1.此頁附在課程設計報告之后;2.綜合成績按優(yōu)、良、中、及格和不及格五級評定。)
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《帶電粒子在電場中的運動》示范課教學ppt課件【物理魯科版高中必修第三冊(新課標)】
- 中考作文指導作文開頭的技法課件
- 高三化學一輪復習-一定物質(zhì)的量濃度溶液的配制課件
- 初一新生語文活動:愛上語文課課件-通用-
- 統(tǒng)編版新教材《修辭立其誠》課件
- 統(tǒng)編版《五石之瓠》(優(yōu)秀版)課件
- 集合復習課ppt課件
- 紅海戰(zhàn)略與藍海戰(zhàn)略比較分析課件
- 糖尿病酮癥酸中毒PBL課件
- 腦梗塞的護理查房課件
- 床上用品營銷方案課件
- 教科版五年級科學4.3像火箭那樣驅(qū)動小車課件
- 維修電工高級實訓課程課件
- 人教版必修二-高中歷史-第4課--古代的經(jīng)濟政策課件
- 整體安全與存取控制設計課件