匯編語言課程設計--學生成績管理系統(tǒng)的設計_第1頁
已閱讀1頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  匯編程序設計課程設計報告</p><p>  ( 2011 -- 2012 年度第 2 學期)</p><p><b>  題目</b></p><p><b>  目 錄</b></p><p>  1 概 述1</p><p>  1.

2、1 課程設計目的1</p><p>  1.2 課程設計內容1</p><p>  2 系統(tǒng)需求分析1</p><p>  2.1 系統(tǒng)目標1</p><p>  2.2 主體功能1</p><p>  2.3 開發(fā)環(huán)境1</p><p>  3 系統(tǒng)概要設計1</p>

3、<p>  3.1 系統(tǒng)總體分析規(guī)劃1</p><p>  3.2 系統(tǒng)流程圖1</p><p><b>  4系統(tǒng)詳細設計1</b></p><p><b>  附 錄3</b></p><p>  附錄1 源程序清單3</p><p>  學

4、生成績管理系統(tǒng)的設計</p><p>  1 概 述 </p><p>  1.1 課程設計目的</p><p>  本程序設計是在學完教學大綱規(guī)定的全部內容、完成所有實踐環(huán)節(jié)的基礎上,旨在深化學生學習的匯編語言課程基本知識,進一步掌握匯編語言程序設計方法,提高分析問題、解決問題的綜合應用能力。</p><p>  1.2

5、 課程設計內容</p><p>  課題:磁盤文件管理系統(tǒng) </p><p><b>  2 系統(tǒng)需求分析</b></p><p><b>  2.1 系統(tǒng)目標</b></p><p>  通過在DOS中執(zhí)行該程序實現(xiàn)對文件的相關操作。</p><p><b> 

6、 2.2 主體功能</b></p><p>  1.功能菜單的編制;</p><p>  2.可以創(chuàng)建新的文件;</p><p>  3.可以向文件中寫入內容;</p><p>  4.可以讀取文件中內容,并顯示在屏幕上;</p><p><b>  2.3 開發(fā)環(huán)境</b></

7、p><p>  在DOS環(huán)境中應用TASM50實現(xiàn)</p><p><b>  3 系統(tǒng)概要設計</b></p><p>  3.1 系統(tǒng)總體分析規(guī)劃</p><p>  根據要求:1.功能菜單的編制;</p><p>  2.可以創(chuàng)建新的文件;</p><p>  3.可以向

8、文件中寫入內容;</p><p>  4.可以讀取文件中內容,并顯示在屏幕上;</p><p><b>  大致分析如下:</b></p><p>  1.功能菜單的調出由子程序menu實現(xiàn)</p><p>  2.要求中的2、3、4三條要求皆在功能菜單中通過鍵入1、2、3、4選擇相應的功能。</p>&l

9、t;p>  鍵入1表示創(chuàng)建新的文件,由子程序create實現(xiàn);</p><p>  鍵入2表示寫入內容到文件,由子程序write實現(xiàn);</p><p>  鍵入3表示讀文件內容并顯示,由子程序entry、read實現(xiàn);</p><p>  鍵入4表示退出,即退出當前執(zhí)行內容。</p><p>  (注:此處所提到的子程序與代碼中的定義相

10、同相同。)</p><p><b>  3.2 系統(tǒng)流程圖</b></p><p>  4系統(tǒng)詳細設計(功能實現(xiàn)及詳細分析)</p><p><b>  菜單功能的實現(xiàn)</b></p><p>  菜單功能由子程序me實現(xiàn),在me中僅是輸出menu,此功能運用dos中的09h調用即可,而達成目標的操

11、作則是在data中對menu進行定義實現(xiàn)的。</p><p><b>  代碼如下:</b></p><p>  DATA SEGMENT</p><p>  MENU DB 0DH,0AH,'**************************',0DH,0AH</p><p>  DB '

12、;* MENU *',0DH,0AH</p><p>  DB '*------------------------*',0DH,0AH</p><p>  DB '* 1.CREATE FILE *',0DH,0AH</p><p>  DB '*

13、 2.WRITE TO FILE *',0DH,0AH</p><p>  DB '* 3.READ FILE *',0DH,0AH</p><p>  DB '* 4.QUIT *',0DH,0AH</p><p>  DB '*------------

14、------------*',0DH,0AH</p><p>  DB '* CHOICE(1-4) *',0DH,0AH</p><p>  DB '**************************',0DH,0AH,'$'</p><p><b>  2.創(chuàng)建文件的實

15、現(xiàn)</b></p><p>  創(chuàng)建文件由子程序create實現(xiàn),通過運用dos中的3ch調用即可。</p><p>  由于相關文件的操作比較復雜,因此在相關方面有較多解釋,而相對輸入輸出比較簡單,則不予敘述,以下文件打開、關閉、讀取、寫入皆如此。</p><p><b>  文件創(chuàng)建調用時</b></p><

16、p>  由ds:dx提供路徑以及文件名;</p><p>  Cf用來判定操作是否成功,cf=0時,表示成功,cf=1時表示失??;</p><p>  操作成功則由ax存儲文件代號,失敗則由ax存儲錯誤代碼;</p><p>  Cx用來存放文件屬性,CX=0時表示為普通文件;</p><p>  文件屬性是用來表示“活動”文件的代號,

17、“活動”文件可以理解為使用中文件。</p><p><b>  例如以下代碼:</b></p><p>  MOV AH 3CH</p><p>  LEA DX PATHNAME</p><p>  MOV CX 0</p><p>  INT 21H </p>

18、<p>  若PATHNAME以被定義為“D:\A\B.DAT”則表示將在D盤A文件夾中創(chuàng)建名為B.DAT的文件 </p><p>  3.寫入文件內容的實現(xiàn)</p><p>  文件內容的寫入由entry、write實現(xiàn)。</p><p>  其中子程序entry用于輸入想要寫入的語句;</p><p>  而將內容寫如文件的是子

19、程序write,</p><p>  大致分為三步:打開文件,寫入內容,關閉文件,</p><p><b>  文件的打開:</b></p><p>  文件的打開通過運用dos中的3dh調用實現(xiàn),</p><p>  由ds:dx確定文件路徑級文件名,</p><p>  由cf判定是否成功,&

20、lt;/p><p>  Ax存放相應的文件代號或錯誤代碼,</p><p><b>  Al存放存取代碼,</b></p><p>  存取代碼用于表示打開方式,0表示可讀,1表示可寫,2表示可讀可寫,3表示退出。</p><p><b>  內容的寫入:</b></p><p>

21、;  內容的寫入通過運用dos中的40h調用實現(xiàn), </p><p>  由ds:dx表示地址,</p><p><b>  Bx存放文件號,</b></p><p>  Cx表示寫入的字節(jié)數。</p><p><b>  文件的關閉:</b></p><p>  文件的關閉

22、通過運用dos中的3eh調用實現(xiàn),</p><p>  其余則與文件的打開類似。</p><p><b>  例如以下代碼:</b></p><p>  MOV AH 40H</p><p>  LEA DX BUFFER</p><p>  MOV BX HANDLE</p&g

23、t;<p>  MOV CX 60</p><p><b>  INT 21H</b></p><p>  則表示往當前文件中寫入BUFFER中前60字節(jié)的內容。</p><p><b>  4.文件的讀取</b></p><p>  文件的讀取由子程序read實現(xiàn)。</p

24、><p>  大致分為三步:打開文件,寫入內容,關閉文件,</p><p>  由于打開與關閉以介紹,則只介紹讀取</p><p><b>  文件的讀?。?lt;/b></p><p>  文件的讀取通過運用dos中的3fh調用實現(xiàn),</p><p>  有ds:dx表示存放地址,</p>

25、<p><b>  Bx表示文件號,</b></p><p>  Cx表示讀取的字節(jié)數,</p><p><b>  例如以下代碼: </b></p><p>  MOV AH 3FH</p><p>  LEA DX BUFFER</p><p>  M

26、OV BX HANDLE</p><p>  MOV CX 6O</p><p><b>  INT 21H</b></p><p>  則表示讀取當前文件中的前60字節(jié)并存放到DUFFER中,</p><p>  而讀取內容的顯示則由dos中的9h調用實現(xiàn)。</p><p><b

27、>  5.退出</b></p><p>  當前程序的退出通過運用dos中的4ch調用實現(xiàn)</p><p><b>  附 錄</b></p><p><b>  附錄1 源程序清單</b></p><p>  DATA SEGMENT</p><p>

28、;  MENU DB 0DH,0AH,'**************************',0DH,0AH</p><p>  DB '* MENU *',0DH,0AH</p><p>  DB '*------------------------*',0DH,0AH</p>&

29、lt;p>  DB '* 1.CREATE FILE *',0DH,0AH</p><p>  DB '* 2.WRITE TO FILE *',0DH,0AH</p><p>  DB '* 3.READ FILE *',0DH,0AH</p><p>

30、;  DB '* 4.QUIT *',0DH,0AH</p><p>  DB '*------------------------*',0DH,0AH</p><p>  DB '* CHOICE(1-4) *',0DH,0AH</p><p>  DB

31、'**************************',0DH,0AH,'$'</p><p>  PATHNAME DB 'D:\IBM PC.TXT',00</p><p>  HANDLE DW ?</p><p>  BUFFER1 DB 60,0,60 DUP (?)</p><

32、;p>  BUFFER2 DB 60,0,60 DUP (?)</p><p>  HUANHUANG DB '',0DH,0AH,'$'</p><p>  CHOSE DB 0DH,0AH,'PLEASE ENTERTHE DIGITAL FROM 1-4!',0DH,0AH,'$'</p>&l

33、t;p>  RNTERY DB 0DH,0AH,'ENTER WHAT YOU WANT TO WRITE TO THE FILE!',0DH,0AH,'$'</p><p>  STR_OK1 DB 0DH,0AH,'CREATE FILE SUCCESSFULLY!',0DH,0AH,'$'</p><p> 

34、 STR_OK2 DB 0DH,0AH,'WRITE TO FILE SUCCESSFULLLY!',0DH,0AH,'$'</p><p>  STR_OK3 DB 0DH,0AH,'READ FROM FILE SUCCESSFULLY!',0DH,0AH,'$'</p><p>  STR_ERROR1 DB

35、'CREATE FILE ERROR!$'</p><p>  STR_ERROR2 DB 'OPEN FILE ERROR!$'</p><p>  STR_ERROR3 DB 'WRITE TO FILE ERROR!$'</p><p>  STR_ERROR4 DB 'READ FILE ERRO

36、R!$'</p><p>  STR_ERROR5 DB 'EXIT FROM FILE ERROR!$'</p><p>  DATA ENDS</p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE,DS:DATA</p><p>  MAIN

37、PROC FAR</p><p><b>  START:</b></p><p>  MOV AX,DATA</p><p><b>  MOV DS,AX</b></p><p>  MOV AX,0600H</p><p><b>  CALL ME</

38、b></p><p>  CALL CHOICE</p><p><b>  RET</b></p><p><b>  MAIN ENDP</b></p><p>  ME PROC NEAR</p><p><b>  MOV AH,9</b>

39、</p><p>  LEA DX,MENU</p><p><b>  INT 21H</b></p><p><b>  ME ENDP</b></p><p>  CHOICE PROC NEAR</p><p><b>  MOV AH,1</b>

40、;</p><p><b>  INT 21H</b></p><p>  CMP AL,31H</p><p><b>  JE NEXT1</b></p><p>  CMP AL,32H</p><p><b>  JE NEXT2</b><

41、/p><p>  CMP AL,33H</p><p><b>  JE NEXT3</b></p><p>  CMP AL,34H</p><p><b>  JE NEXT4</b></p><p><b>  JMP BACK</b></p&g

42、t;<p><b>  NEXT1:</b></p><p>  CALL CREATE</p><p><b>  NEXT2:</b></p><p>  CALL ENTRY</p><p><b>  NEXT3:</b></p><p

43、><b>  MOV AH,9</b></p><p>  LEA DX,HUANHUANG</p><p><b>  INT 21H</b></p><p><b>  CALL READ</b></p><p><b>  NEXT4:</b>

44、</p><p>  MOV AX,4C00H</p><p><b>  INT 21H</b></p><p><b>  BACK:</b></p><p><b>  MOV AH,9</b></p><p>  LEA DX,CHOSE<

45、/p><p><b>  INT 21H</b></p><p><b>  CALL ME</b></p><p><b>  RET</b></p><p>  CHOICE ENDP</p><p>  CREATE PROC NEAR</p&g

46、t;<p>  MOV AH,3CH</p><p>  LEA DX,PATHNAME</p><p><b>  MOV CX,0</b></p><p><b>  INT 21H</b></p><p><b>  JC ERROR1</b></p&

47、gt;<p>  MOV HANDLE,AX</p><p>  JMP EXIT </p><p><b>  ERROR1:</b></p><p><b>  MOV AH,1</b></p><p>  LEA DX,STR_ERROR1</p><p&g

48、t;<b>  INT 21H</b></p><p><b>  JMP EXIT1</b></p><p><b>  EXIT:</b></p><p><b>  MOV AH,9</b></p><p>  LEA DX,STR_OK1</

49、p><p><b>  INT 21H</b></p><p><b>  EXIT1:</b></p><p>  CALL CHOICE</p><p>  CREATE ENDP</p><p>  ENTRY PROC NEAR</p><p>&

50、lt;b>  MOV AH,9</b></p><p>  LEA DX,RNTERY</p><p><b>  INT 21H</b></p><p>  LEA DX,BUFFER1</p><p>  MOV AH,0AH</p><p><b>  INT 2

51、1H</b></p><p><b>  SUB CH,CH</b></p><p>  MOV CL,BUFFER1+1</p><p><b>  ADD DX,2</b></p><p>  CALL WRITE</p><p><b>  RET

52、</b></p><p>  ENTRY ENDP</p><p>  WRITE PROC NEAR</p><p>  MOV AH,3DH</p><p>  LEA DX,PATHNAME</p><p><b>  MOV AL,1</b></p><p&

53、gt;<b>  INT 21H</b></p><p><b>  JC ERROR2</b></p><p>  MOV HANDLE,AX</p><p>  MOV AH,40H</p><p>  LEA DX,BUFFER1+2</p><p>  MOV BX,

54、HANDLE</p><p><b>  MOV CX,60</b></p><p><b>  INT 21H</b></p><p><b>  JC ERROR3</b></p><p>  MOV AH,3EH</p><p>  MOV BX,

55、HANDLE</p><p><b>  INT 21H</b></p><p><b>  JC ERROR4</b></p><p><b>  JMP BACK1</b></p><p><b>  ERROR2:</b></p>&l

56、t;p><b>  MOV AH,9</b></p><p>  LEA DX,STR_ERROR2</p><p><b>  INT 21H</b></p><p><b>  JMP EXIT2</b></p><p><b>  ERROR3:</

57、b></p><p><b>  MOV AH,9</b></p><p>  LEA DX,STR_ERROR4</p><p><b>  INT 21H</b></p><p><b>  JMP EXIT2</b></p><p><

58、b>  ERROR4:</b></p><p><b>  MOV AH,9</b></p><p>  LEA DX,STR_ERROR5</p><p><b>  INT 21H</b></p><p><b>  JMP EXIT2</b></p

59、><p><b>  BACK1:</b></p><p><b>  MOV AX,9</b></p><p>  LEA DX,STR_OK2</p><p><b>  INT 21H</b></p><p><b>  EXIT2:<

60、;/b></p><p>  CALL CHOICE</p><p>  WRITE ENDP</p><p>  READ PROC NEAR</p><p>  MOV AH,3DH</p><p>  LEA DX,PATHNAME</p><p><b>  MOV AL

61、,0</b></p><p><b>  INT 21H</b></p><p><b>  JC ERROR5</b></p><p>  MOV HANDLE,AX</p><p>  MOV AH,3FH</p><p>  LEA DX,BUFFER2&l

62、t;/p><p>  MOV BX,HANDLE</p><p><b>  MOV CX,60</b></p><p><b>  INT 21H</b></p><p><b>  JC ERROR6</b></p><p><b>  MOV

63、 AH,9</b></p><p>  LEA DX,BUFFER2</p><p><b>  INT 21H</b></p><p><b>  JC ERROR6</b></p><p>  MOV AH,3EH</p><p>  MOV BX,HANDL

64、E</p><p><b>  INT 21H</b></p><p><b>  JC ERROR7</b></p><p><b>  JMP BACK2</b></p><p><b>  ERROR5:</b></p><p&g

65、t;<b>  MOV AH,9</b></p><p>  LEA DX,STR_ERROR2</p><p><b>  INT 21H</b></p><p><b>  JMP EXIT3</b></p><p><b>  ERROR6:</b>

66、</p><p><b>  MOV AH,9</b></p><p>  LEA DX,STR_ERROR4</p><p><b>  INT 21H</b></p><p><b>  JMP EXIT3</b></p><p><b>

67、  ERROR7:</b></p><p><b>  MOV AX,9</b></p><p>  LEA DX,STR_ERROR5</p><p><b>  INT 21H</b></p><p><b>  JMP EXIT3</b></p>

68、<p><b>  BACK2:</b></p><p><b>  MOV AH,9</b></p><p>  LEA DX,STR_OK3</p><p><b>  INT 21H</b></p><p><b>  EXIT3:</b>

69、;</p><p>  CALL CHOICE</p><p><b>  READ ENDP</b></p><p><b>  CODE ENDS</b></p><p><b>  END START</b></p><p><b>  

溫馨提示

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

評論

0/150

提交評論