




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上電子工程學(xué)院微機(jī)原理匯編語言上機(jī)實(shí)驗(yàn)報(bào)告班級:學(xué)號: 姓名:班內(nèi)序號:一、實(shí)驗(yàn)要求一個(gè)學(xué)生的信息包括姓名、班級、學(xué)號(班內(nèi)序號)、成績。試編寫程序?qū)崿F(xiàn)以下功能:(1)能錄入學(xué)生成績(十進(jìn)制形式);提示:輸入形如:tom 301 16 95回車,每名學(xué)生用一行,選擇一個(gè)特殊符表示輸入結(jié)束;(2)能按要求:如學(xué)號或成績進(jìn)行排序顯示;(3)能統(tǒng)計(jì)平均成績;(4)能統(tǒng)計(jì)不及格、60-70、70-80、80-90、90-100各分?jǐn)?shù)段的人數(shù)。2、 程序流程和算法思想 (一).程序流程設(shè)計(jì) 根據(jù)本次實(shí)驗(yàn)要求要求實(shí)現(xiàn)的5個(gè)功能:信息錄入、按學(xué)號排序、按成績排序、求平均成績、求各個(gè)分
2、數(shù)段人數(shù),在加上一個(gè)退出程序,總體上可以將整個(gè)程序劃分為七個(gè)部分,依次為功能選擇部分(六個(gè)選項(xiàng))、信息錄入部分、按學(xué)號排序部分、按成績排序部分、求平均成績部分、求各個(gè)分?jǐn)?shù)段部分、退出程序部分。根據(jù)以上的劃分,畫出流程圖如下:$654 功能選擇StartExit求平均成績統(tǒng)計(jì)分?jǐn)?shù)段3按成績排序21按學(xué)號排序信息錄入 (二). 數(shù)據(jù)結(jié)構(gòu) 1、采用數(shù)組進(jìn)行數(shù)據(jù)存儲: (1)學(xué)生人數(shù)數(shù)組stuNum DB 0 (2)學(xué)生信息數(shù)組Student DB maxNum DUP (14,0,$,$,$,$,$,$,$,$,$,$,$,$,$,$),每組數(shù)數(shù)有0-17共18個(gè)字節(jié),0為最大輸入,1為實(shí)際輸入,2
3、-16為學(xué)生信息,17為”$”學(xué)生信息存儲格式為(名稱 班級 學(xué)號 成績),例如(liu 207 11 98), (3)平均成績數(shù)組 aveScores DB 00H,$ (4)用變量countA DB 00H,$、countB DB 00H,$、countC DB 00H,$、countD DB 00H,$、countE DB 00H,$分別記錄90分以上、8980分、7970分、6960分以及60分以下各分?jǐn)?shù)段人數(shù) 。 2、子程序根據(jù)實(shí)驗(yàn)要求的功能,程序包含6個(gè)子程序 (1)FunctionChioce 程序功能選擇(2)infinput 學(xué)生信息輸入(3)IDbublingSort 按學(xué)
4、號排序(升序)(4)gradeBublingSort 按成績排序(降序)(5)countAverageScores 計(jì)算平均分(6)Statistics 統(tǒng)計(jì)各個(gè)分?jǐn)?shù)段人數(shù)對于學(xué)生按成績或?qū)W號排序,采用冒泡排序,成績按降序排序,學(xué)號按升序排序 3、提示信息 Please choose 選擇功能 Wrong choice! Please choose it again! 無此選項(xiàng),重新選擇 Please input students information 輸入學(xué)生信息 Result 輸出結(jié)果(按學(xué)號排序、按成績排序、計(jì)算平均成績、統(tǒng)計(jì)分?jǐn)?shù)段) 60: 小于60分人數(shù) 6069: 6069分人數(shù)
5、 7079: 7079分人數(shù) 8089: 8089分人數(shù) 90100: 90100分人數(shù)3、 程序運(yùn)行截圖程序功能選擇學(xué)生信息輸入按學(xué)號排序按成績排序計(jì)算平均值統(tǒng)計(jì)各個(gè)分?jǐn)?shù)段人數(shù)錯(cuò)誤選擇報(bào)錯(cuò),重新輸入4、 實(shí)驗(yàn)總結(jié)這次匯編語言上機(jī)實(shí)驗(yàn),要求編寫一個(gè)學(xué)生信息錄入查詢程序,實(shí)現(xiàn)成績錄入,按學(xué)號排序,按成績排序,求平均分,統(tǒng)計(jì)各個(gè)分?jǐn)?shù)段人數(shù)的功能。從程序的設(shè)計(jì)上來說,我學(xué)會了自頂向下設(shè)計(jì)的方式,即根據(jù)程序要實(shí)現(xiàn)的功能,將程序劃分為一個(gè)個(gè)小的子程序,畫出流程圖,再進(jìn)行程序的編寫及細(xì)化。從對匯編語言語法上來說,這次實(shí)驗(yàn)大大地增強(qiáng)了我對匯編語言的掌握程度。這次的實(shí)驗(yàn)相對來說比較綜合,用到的知識也很多,從最
6、基本的數(shù)組和變量的定義,到各種運(yùn)算符的運(yùn)用,到各個(gè)指令的使用,到較為復(fù)雜的程序的總體框架的編寫,子程序的定義和調(diào)用,宏的定義和調(diào)用,數(shù)據(jù)參數(shù)的傳遞。在整個(gè)編寫的過程中,我對于匯編語言語法的理解加深了,而且,對于其實(shí)現(xiàn)的原理機(jī)制的理解也大大增強(qiáng)了。匯編語言并非高級語言,不是面向?qū)ο螅y度較大,極有可能因?yàn)橐恍┬〉募?xì)節(jié)導(dǎo)致程序無法運(yùn)行,甚至出現(xiàn)不正確的結(jié)果,例如入棧和出棧問題等,排查起來相對較為困難。我在這次的實(shí)驗(yàn)中也遇到了各種各樣的小問題,但在自己細(xì)心的檢查下以及和同學(xué)們的討論中,這些問題也都一一解決了。這次實(shí)驗(yàn)對于提高我的編程思維能力和發(fā)現(xiàn)問題,解決問題的能力的效果還是比較明顯的??偟膩碚f,這
7、次的實(shí)驗(yàn)還是比較完滿的,而且是極其有意義的。這對于我以后無論是讀研繼續(xù)深造,還是步入社會工作,都是很有幫助的。 五、實(shí)驗(yàn)源代碼DATA SEGMENT maxNumEQU 100;學(xué)生的最大人數(shù)stuNum DB 0 ;學(xué)生人數(shù)Student DB maxNum DUP (14,0,$,$,$,$,$,$,$,$,$,$,$,$,$,$) ;存儲學(xué)生信息aveScores DB 00H,$ ;存儲學(xué)生平均成績MSG DB This is a program for static students information:,0aH,0dH, DB 1.Please input students
8、information(tom 301 16 95)!,0aH,0dH, DB 2.Sorting by ID!,0aH,0dH, DB 3.Sorting by grade!,0aH,0dH, DB 4.Average students scores!,0aH,0dH, DB 5.Statistics!,0aH,0dH, DB 0.Exit the program!,0aH,0dH, DB Please chooce:,0aH,0dH,$ ;選擇功能選項(xiàng)的提示RESULT DB Result: ,0aH,0dH,$InputMSG DB Please input students infor
9、mation:,0aH,0dH,$ ERROR DB Wrong choice!Please chooce it again!,0aH,0dH,$countE DB 00H,$;059分?jǐn)?shù)段學(xué)生數(shù)countD DB 00H,$;6069分?jǐn)?shù)段學(xué)生數(shù)countC DB 00H,$;7079分?jǐn)?shù)段學(xué)生數(shù)countB DB 00H,$;8089分?jǐn)?shù)段學(xué)生數(shù)countA DB 00H,$;90100分?jǐn)?shù)段學(xué)生數(shù)lessThan60 DB 60:,$lessThan70 DB 6069:,$lessThan80 DB 7079:,$lessThan90 DB 8089:,$lessThan100 DB
10、90100:,$DATA ENDSSTACK SEGMENTDB 512 DUP(0)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK ; NumCount1宏,對變量stuNum 進(jìn)行-1處理NumCount1 MACROPUSH AX MOV AL,1 SUB stuNum,AL POP AX PUSH AX MOV AL,stuNum CBW MOV CX,AX POP AX PUSH AX MOV AL,1 ADD stuNum,AL POP AXENDM; NumConut2宏,對變量stuNum賦值處理NumConut2
11、MACRO PUSH AX MOV AL,stuNum CBW MOV CX,AX POP AXENDM; Enter宏:回車換行符Enter MACROPUSH AXPUSH DXMOVDL,0DHMOV AH,02HINT21HMOV DL,0AHINT 21H POP DXPOPAXENDM ; callkey宏,調(diào)用系統(tǒng)服務(wù)callkey MACROPUSH AXMOV AH,09HINT 21HPOP AXMOV AH,1INT 21HENDM;外層最大循環(huán)Circle: MOV AX,DATA MOV DS,AX CALL FunctionChoice MOV AH,4CH INT
12、 21H ;FunctionChoice 程序功能選擇FunctionChoice PROC NEARSTART: LEA DX,MSG PUSH AX MOV AH,09H INT 21H POP AX MOV AH,1 INT 21H Enter CMP AL,1 JZ chooseInput;選擇信息輸入 CMP AL,2 JZ chooseSort1;按學(xué)生ID排序 CMP AL,3 JZ chooseSort2;按學(xué)生成績排序 CMP AL,4 JZ chooseAverageScores;輸出學(xué)生平均分 CMP AL,5 JZ chooseStatistics;統(tǒng)計(jì)各個(gè)分?jǐn)?shù)段人數(shù)
13、CMP AL,0 JZ EXIT LEA DX,ERROR PUSH AX MOV AH,09H INT 21H POP AX JMP START chooseInput: CALL infInput JMP STARTchooseSort1: CALL IDbublingSort JMP STARTchooseSort2: CALL gradeBublingSort JMP STARTchooseAverageScores: CALL countAverageScores JMP START chooseStatistics: CALL Statistics JMP STARTEXIT: R
14、ETFunctionChoice ENDP;infInput:學(xué)生信息輸入infInput PROC NEAR PUSH AX;堆棧保護(hù) PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI MOV BL,1 LEA DX,InputMSG;提示信息輸出 PUSH AX MOV AH,09H;系統(tǒng)功能調(diào)用 INT 21H POP AX MOV DI,0 MOV CX,maxNumStu: LEA DX,Student+DI;學(xué)生信息地址 MOV AH,0AH INT 21H MOV SI,DX;比較是否是退出符號$ cmp BYTE PTRSI+2,$ JZ con
15、ADD stuNum,BL ADD DI,16 Enter LOOP Stucon: POP DI POP SI POP DX POP CX POP BX POP AX RETinfInput ENDP;序號升序IDbublingSort PROC NEAR PUSH AX;堆棧保護(hù) PUSH BX PUSH CX PUSH DX PUSH DI PUSH SI LEA DX,RESULT PUSH AX MOV AH,09H INT 21H POP AX PUSH AX MOV AL,1 SUB stuNum,AL POP AX PUSH AX MOV AL,stuNum CBW MOV C
16、X,AX POP AX PUSH AX MOV AL,1 ADD stuNum,AL POP AXLP1: MOV DI,CX MOV BX,0LP2: MOV AL,Student+BX+10 CMP AL,Student+BX+16+10 JB StatisticsIfo JA ExchangeIfo MOV AL,Student+BX+11 CMP AL,Student+BX+16+11 JBE StatisticsIfoExchangeIfo:;交換學(xué)生信息 PUSH CX PUSH BX MOV CX,13 Stu2: MOV DL,Student+BX+2 XCHG DL,Stud
17、ent+BX+16+2 MOV Student+BX+2,DL INC BX LOOP Stu2 POP BX POP CX StatisticsIfo: ADD BX,16 LOOP LP2 MOV CX,DI LOOP LP1Output: MOV CL,stuNum MOV BX,0LP3: MOV CH,13 LEA SI,Student+BX+2LP4: MOV DX,SI MOV AH,02H INT 21H INC SI DEC CH JNZ LP4 Enter ADD BX,16 DEC CL JNZ LP3 POP SI POP DI POP DX POP CX POP BX
18、 POP AX RETIDbublingSort ENDP ;成績降序gradeBublingSort PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH DI PUSH SI LEA DX,RESULT PUSH AX MOV AH,09H INT 21H POP AX PUSH AX MOV AL,1 SUB stuNum,AL POP AX PUSH AX MOV AL,stuNum CBW MOV CX,AX POP AX PUSH AX MOV AL,1 ADD stuNum,AL POP AXLP5: MOV DI,CX MOV BX,0L
19、P6: MOV AL,Student+BX+13 CMP AL,Student+BX+16+13 JA Staticse1 JB ExchangeIfo1 MOV AL,Student+BX+14 CMP AL,Student+BX+16+14 JAE Staticse1 ExchangeIfo1: PUSH CX PUSH BX MOV CX,13 LP7: MOV DL,Student+BX+2 XCHG DL,Student+BX+16+2 ;交換學(xué)生的信息 MOV Student+BX+2,DL INC BX LOOP LP7 POP BX POP CX Staticse1: ADD
20、BX,16 LOOP LP6 MOV CX,DI LOOP LP5OutputIfo: MOV CL,stuNum MOV BX,0LP8: MOV CH,13 LEA SI,Student+BX+2LP9: MOV DX,SI MOV AH,02H INT 21H INC SI DEC CH JNZ LP9 Enter ADD BX,16 DEC CL JNZ LP8 POP SI POP DI POP DX POP CX POP BX POP AX RETgradeBublingSort ENDP;計(jì)算平均分countAverageScores PROC NEAR PUSH AX PUSH
21、 BX PUSH CX PUSH DX PUSH DI PUSH SI LEA DX,RESULT PUSH AXMOV AH,09HINT 21HPOP AX MOV AX,0 MOV BX,0 PUSH AX MOV AL,stuNum CBW MOV CX,AX POP AXtotalScore: MOV DH,Student+BX+13 SUB DH,30H SHL DH,4 MOV DL,Student+BX+14 SUB DL,30H ADD DH,DL ADD AL,DH DAA ADC AH,0 ADD BX,16 LOOP totalScore MOV CL,stuNum M
22、OV BL,AL SHR AL,4 AND BL,0FH AAD DIV CL MOV BH,AL MOV AL,BL AAD DIV CL MOV CL,AL MOV AH,02H MOV DL,BH ADD DL,30H INT 21H MOV DL,CL ADD DL,30H INT 21H Enter SHL BH,4 ADD CL,BH MOV aveScores,CL POP SI POP DI POP DX POP CX POP BX POP AX RETcountAverageScores ENDP ;統(tǒng)計(jì)各個(gè)分?jǐn)?shù)段人數(shù) Statistics PROC NEAR PUSH AX
23、 PUSH BX PUSH CX PUSH DX MOV countA,0 MOV countB,0 MOV countC,0 MOV countD,0 MOV countE,0 LEA DX,RESULT PUSH AX MOV AH,09H INT 21H POP AX MOV BX,0 PUSH AX MOV AL,stuNum CBW MOV CX,AX POP AXL: MOV AL,Student+BX+13 SUB AL,30H SHL AL,4 MOV AH,Student+BX+14 SUB AH,30H ADD AL,AH CMP AL,60H JB lessT60 CMP AL,70H JB lessT70 CMP AL,80H JB lessT80 CMP AL,90H JB lessT90 MOV DH,countA INC DH MOV countA,DH ADD BX,16 DEC CX JNZ L JMP PrintlessT60: MOV DH,countE INC DH MOV countE,DH ADD BX,16 DEC CX JNZ L JMP Printl
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高考?xì)v史考前必背超級結(jié)論-14個(gè)階段特征
- 2024年中級統(tǒng)計(jì)師《統(tǒng)計(jì)工作實(shí)務(wù)》真題及答案解析
- 婦科護(hù)理常用藥
- 2025年校園安全新標(biāo)準(zhǔn):危險(xiǎn)品存放領(lǐng)用登記操作流程全覽
- 2025年湖南省長沙市初中一年級上學(xué)期期中語言能力考試試卷
- 2025年室內(nèi)設(shè)計(jì)師職業(yè)資格考試真題卷-室內(nèi)設(shè)計(jì)空間布局與設(shè)計(jì)效果評估試題
- 教材原理2025年計(jì)算機(jī)二級MySQL試題及答案
- 2025年護(hù)士執(zhí)業(yè)資格考試內(nèi)科護(hù)理學(xué)專項(xiàng)護(hù)理倫理模擬考試試卷
- 護(hù)理業(yè)務(wù)查房記錄
- 貴州省六盤水市鐘山區(qū)2024-2025學(xué)年九年級上學(xué)期期末質(zhì)量監(jiān)測英語試題(原卷版+解析版)
- 大學(xué)生網(wǎng)絡(luò)安全教育筑牢安全網(wǎng)絡(luò)防線課件
- DB11-T854-2023占道作業(yè)交通安全設(shè)施設(shè)置技術(shù)要求
- (高清版)WS∕T 389-2024 醫(yī)學(xué)X線檢查操作規(guī)程
- 環(huán)衛(wèi)承包協(xié)議
- 運(yùn)輸企業(yè)安全生產(chǎn)責(zé)任制制度
- 醫(yī)院護(hù)理培訓(xùn)課件:《安全注射》
- 醫(yī)療器械勞動(dòng)合同范本
- 數(shù)字華容道-1課時(shí)
- 2024-2029年中國醇類燃料行業(yè)深度調(diào)研及投資前景預(yù)測研究報(bào)告
- 相約勞動(dòng)智慧樹知到期末考試答案章節(jié)答案2024年陜西鐵路工程職業(yè)技術(shù)學(xué)院
- 小兒手術(shù)患者的心理護(hù)理
評論
0/150
提交評論