微機原理課程設計報告學生成績排序名次_第1頁
微機原理課程設計報告學生成績排序名次_第2頁
微機原理課程設計報告學生成績排序名次_第3頁
微機原理課程設計報告學生成績排序名次_第4頁
微機原理課程設計報告學生成績排序名次_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、工譚犬爭ANGSy UNIIIVBSITY氣信息工程學院WEI JI YUANJ微機原理課程設計姓名: XX班級:XXXXX學號:XXXXXXXXXX2011年7月8日目的:結合微型計算機原理課程的學習,進一步鞏固已學的知識,同時針對計算 機原理知識的具體應用,學會對系統(tǒng)中 DOS 口 BIOS勺使用。學會使用屏幕編輯程 序一一EDIT,弄懂匯編程序的上級過程以及如何運用 DEBU軟件進行匯編程序的 調試。內容與要求:1字符串匹配設計 為掌握提示信息的設置方法及讀取鍵入信息的方法, 編寫程序實現(xiàn)兩 個字符串比較,如相同則顯示“ MATC”否則顯示“ NO MATCH。2從鍵盤輸入數(shù)據(jù)并顯示的設

2、計 為掌握鍵盤接受數(shù)據(jù)的方法,并了解將鍵盤數(shù)據(jù)顯示時必須轉換為ASCII碼的原理,編寫程序,將鍵盤接受到的四位十六進制數(shù)據(jù)轉換為等 值的二進制數(shù)顯示。3響鈴設計為掌握響鈴的使用方法, 編寫程序, 從鍵盤接受輸入字符, 如是數(shù)字 N則響鈴N此,如不是數(shù)字則不響。4將鍵盤輸入的小寫字母轉換成大寫字母的設計 為了解小寫字母和大寫字母在計算機內的表示方法, 并學習如何進行 轉換,編寫程序,接受鍵盤字符,并將其中的小寫字母轉變?yōu)榇髮懽帜福?然后顯示在屏幕上。5學生成績名次表設計為進一步熟悉排序方法,編寫程序,將 100以內的 30個成績存入首址為1000H勺存儲區(qū)中。1000H+i表示學號為i的學生成績

3、。編寫程序使得在2000H開始的區(qū)域排出名次表,2000H+i為學號i的學生的名次。下面著重介紹程序 5學生成績名次表設計:流程圖:主程序流程圖SCA子函數(shù)程序流程圖程序代碼及注釋:CRLF MACRO宏定義,回車換行MOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTSTUNUM EQU 30 ; 學生數(shù)提示信息報錯信息MESS1 DB 'Please input 30 score',0DH,0AH,'$' ERROR DB 'Input error,try aga

4、in',0DH,0AH,'$'MESS2 DB 'The order is:',0DH,0AH,'$'EMARK DB ;報錯標志ORG 1000H ;存放成績地址SCORE DB 30 DUP() ;成績表ORG 2000H ;存放名次地址SEQU DB 30 DUP() ;名次表DATA ENDSSTACK SEGMENTSTA DW 32 DUP()TOP DWSTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,A

5、XMOV ES,AXMOV SP,TOPMOV AH,09H ;MOV DX,OFFSET MESS1INT 21HMOV SI,OFFSET SCOREMOV CX,STUNUMMOV EMARK,0 ;UUU: CALL GETNUMCMP EMARK,01H ; JE START;MOV SI,DL;INC SI ; LOOP UUU ;MOV CX,STUNUMMOV DI,OFFSET SEQUVVV: CALL SCAN ;MOV AL,STUNUM ; SUB AL,CL ;INC ALMOV BX,DX ; PUSH AX ;PUSH BX顯示提示信息成績表首址報錯標志清 0

6、調用子函數(shù)讀取成績 判斷是否出錯 出錯則重新開始 沒出錯則存入成績 指向下一個成績單元地址 判斷30個成績是否讀取完名次表首址調用掃描子程序學生總數(shù)計算名次學號將名次轉換成壓縮BC碼方便顯示PUSH CX XOR AH,AHMOV BH,0AHDIV BHMOV CL,4SHL AL,CLADD AL,AHMOV DH,ALPOP CXPOP BXPOP AXMOV DI+BX,DHLOOP VVV ;MOV AH,09H ;LEA DX,MESS2INT 21HMOV CX,STUNUMMOV SI,OFFSET SEQU WWW: MOV AL,SICALL DISPI ;PUSH DXP

7、USH AXMOV AH,02 ;MOV DL,20HINT 21HPOP AXPOP DXINC SI ;LOOP WWW;MOV AH,4CH;存入名次 判斷是否存完 顯示名次提示信息調用子函數(shù)顯示名次顯示空格指向名次表的下一個地址判斷是否輸出所有名次返回DOSINT 21HSCAN PROC NEAR掃面子函數(shù),沒調用一遍, 找出成績表; 中最高成績,記錄其學號, 并將此成績; 清 0PUSHCXMOVCX,STUNUMMOVAL,00HMOVBX,OFFSET SCOREMOVSI,BXCCC: CMP AL,SIJAE JJJMOV AL,SIMOV DX,SISUB DX,BXJJ

8、J: INC SILOOP CCCADD BX,DXMOV BYTE PTR BX,00HPOP CXRETSCAN ENDPDISPI PROC NEAR ; 顯示子程序PUSH CXMOV BL,AL ;顯示高 4位MOV DL,BLMOV CL,04ROL DL,CLAND DL,0FHCALL DISPLMOV DL,BL ;顯示低 4位AND DL,0FHCALL DISPLPOP CXRETDISPI ENDPDISPL PROC NEAR;將名次轉換成對應的ASCII碼值并顯示ADD DL,30HMOV AH,02HINT 21HRETDISPL ENDPGETNUM PROC

9、NEAR;讀取成績子函數(shù)PUSH CXXORDX,DX;清0,用于存放成績GGG: MOV AH,01HINT21H ;鍵盤字符輸入CMPAL,0DHJZRRR;如果是回車則結束SUBAL,30HJBERR;小于0則報錯CMP AL,09HJBEGETS;JMPERR;GETS: MOV CL,04SHLDX,CL;XORAH,AHADDDX,AX;JMPGGG;ERR: MOV AH,09H ;MOV DX,OFFSET ERRORINT 21HMOV EMARK,01H ;RRR: PUSH DXCRLF ;POP DXPOP CXRETGETNUM ENDPCODE ENDS如果在 09

10、之間則存成績至 DX否則報錯將DX中已有數(shù)值左移四位緊接著將數(shù)據(jù)存在DX中低四位跳轉繼續(xù)讀取數(shù)據(jù)顯示報錯信息報錯標志置 1回車換行END START心得體會:在為期一周的微機原理課程設計中, 通過查閱書籍, 上網(wǎng)收集資料以及向老 師和同學請教,我完成了老師定下的任務。在此次課程設計過程中感受頗深。這一周,可以說是苦多于甜, 但是可以學到很多東西, 同時鞏固了以前所 學過的知識。 以前在上課的時候, 老師經(jīng)常強調在寫一個程序的時候, 一定要事 先把程序原理方框圖化出來, 但是我開始總覺得這樣做沒必要, 很浪費時間。 但 是,這次課程設計完全改變了我以前的那種錯誤的認識, 以前我接觸的那些程序 都

11、是很短、 很基礎的,但是在課程設計中碰到的程序較復雜, 畫程序方框圖是很 有必要的。因為通過程序方框圖,在做設計的過程中,我們每一步要做什么,每 一步要完成什么任務都有一個很清楚的思路, 而且在程序測試的過程中也有利于 查錯。在設計過程中遇到了不少的麻煩,最典型的是由于程序相對較大,在用JB,JA 等條件跳轉語句時出項了超出跳轉范圍的情況, 這就給程序設計帶來了一 些困難。由于之前都沒遇到過這樣的問題, 所以剛開始遇到的時候有點棘手, 不 知道該從哪下手解決此問題, 以至于都有了放棄該課題的想法。 但是又覺得不值 得,寫了這么長的程序就因為這一個小問題而放棄了實在是說不過去, 于是就靜 下新來

12、查閱課本, 發(fā)現(xiàn)這些條件跳轉語句的跳轉范圍只能在 -128B-+127B 之間, 而無條件跳轉指令JMP則不受此約束,于是我添加了一個無條件跳轉語句, 通過 條件跳轉語句先跳轉到該無條件跳轉語句,再通過 JMP跳轉到需要的地方,于 是問題就迎刃而解。 同過這一個小小的問題也暴露出了自身的問題: 對課本知識 掌握不牢固, 只了解指令的基本功能卻忽略了它的約束條件。 還有一些問題, 比如為了顯示方便,需把16進制數(shù)轉化成10進制數(shù)顯示,在進行ASCII碼值轉換 時也遇到了問題,A F不能正確顯示,通過與同學討論也是自己的疏忽導致的。這不是第一次用匯編語言來寫程序, 平時做了很多實驗,寫了很多小程序。 但這次是一個綜合的程序,平時的一些程序稍微改動都可以作為子程序用到,這大大方便了我的設計,為我節(jié)省了很多的時間。在這次課程設計中,我真正體會到了合作的重要性,遇到很多問題時,當我 看書查資料不能解決時,去找同學討論

溫馨提示

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

評論

0/150

提交評論