版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 匯編程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告</p><p> ( 2011 -- 2012 年度第 2 學(xué)期)</p><p><b> 題目</b></p><p><b> 目 錄</b></p><p> 1 概 述1</p><p> 1.
2、1 課程設(shè)計(jì)目的1</p><p> 1.2 課程設(shè)計(jì)內(nèi)容1</p><p> 2 系統(tǒng)需求分析1</p><p> 2.1 系統(tǒng)目標(biāo)1</p><p> 2.2 主體功能1</p><p> 2.3 開發(fā)環(huán)境1</p><p> 3 系統(tǒng)概要設(shè)計(jì)1</p>
3、<p> 3.1 系統(tǒng)總體分析規(guī)劃1</p><p> 3.2 系統(tǒng)流程圖1</p><p><b> 4系統(tǒng)詳細(xì)設(shè)計(jì)1</b></p><p><b> 附 錄3</b></p><p> 附錄1 源程序清單3</p><p> 學(xué)
4、生成績(jī)管理系統(tǒng)的設(shè)計(jì)</p><p> 1 概 述 </p><p> 1.1 課程設(shè)計(jì)目的</p><p> 本程序設(shè)計(jì)是在學(xué)完教學(xué)大綱規(guī)定的全部?jī)?nèi)容、完成所有實(shí)踐環(huán)節(jié)的基礎(chǔ)上,旨在深化學(xué)生學(xué)習(xí)的匯編語(yǔ)言課程基本知識(shí),進(jìn)一步掌握匯編語(yǔ)言程序設(shè)計(jì)方法,提高分析問(wèn)題、解決問(wèn)題的綜合應(yīng)用能力。</p><p> 1.2
5、 課程設(shè)計(jì)內(nèi)容</p><p> 課題:磁盤文件管理系統(tǒng) </p><p><b> 2 系統(tǒng)需求分析</b></p><p><b> 2.1 系統(tǒng)目標(biāo)</b></p><p> 通過(guò)在DOS中執(zhí)行該程序?qū)崿F(xiàn)對(duì)文件的相關(guān)操作。</p><p><b>
6、 2.2 主體功能</b></p><p> 1.功能菜單的編制;</p><p> 2.可以創(chuàng)建新的文件;</p><p> 3.可以向文件中寫入內(nèi)容;</p><p> 4.可以讀取文件中內(nèi)容,并顯示在屏幕上;</p><p><b> 2.3 開發(fā)環(huán)境</b></
7、p><p> 在DOS環(huán)境中應(yīng)用TASM50實(shí)現(xiàn)</p><p><b> 3 系統(tǒng)概要設(shè)計(jì)</b></p><p> 3.1 系統(tǒng)總體分析規(guī)劃</p><p> 根據(jù)要求:1.功能菜單的編制;</p><p> 2.可以創(chuàng)建新的文件;</p><p> 3.可以向
8、文件中寫入內(nèi)容;</p><p> 4.可以讀取文件中內(nèi)容,并顯示在屏幕上;</p><p><b> 大致分析如下:</b></p><p> 1.功能菜單的調(diào)出由子程序menu實(shí)現(xiàn)</p><p> 2.要求中的2、3、4三條要求皆在功能菜單中通過(guò)鍵入1、2、3、4選擇相應(yīng)的功能。</p>&l
9、t;p> 鍵入1表示創(chuàng)建新的文件,由子程序create實(shí)現(xiàn);</p><p> 鍵入2表示寫入內(nèi)容到文件,由子程序write實(shí)現(xiàn);</p><p> 鍵入3表示讀文件內(nèi)容并顯示,由子程序entry、read實(shí)現(xiàn);</p><p> 鍵入4表示退出,即退出當(dāng)前執(zhí)行內(nèi)容。</p><p> (注:此處所提到的子程序與代碼中的定義相
10、同相同。)</p><p><b> 3.2 系統(tǒng)流程圖</b></p><p> 4系統(tǒng)詳細(xì)設(shè)計(jì)(功能實(shí)現(xiàn)及詳細(xì)分析)</p><p><b> 菜單功能的實(shí)現(xiàn)</b></p><p> 菜單功能由子程序me實(shí)現(xiàn),在me中僅是輸出menu,此功能運(yùn)用dos中的09h調(diào)用即可,而達(dá)成目標(biāo)的操
11、作則是在data中對(duì)menu進(jìn)行定義實(shí)現(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)建文件的實(shí)
15、現(xiàn)</b></p><p> 創(chuàng)建文件由子程序create實(shí)現(xiàn),通過(guò)運(yùn)用dos中的3ch調(diào)用即可。</p><p> 由于相關(guān)文件的操作比較復(fù)雜,因此在相關(guān)方面有較多解釋,而相對(duì)輸入輸出比較簡(jiǎn)單,則不予敘述,以下文件打開、關(guān)閉、讀取、寫入皆如此。</p><p><b> 文件創(chuàng)建調(diào)用時(shí)</b></p><
16、p> 由ds:dx提供路徑以及文件名;</p><p> Cf用來(lái)判定操作是否成功,cf=0時(shí),表示成功,cf=1時(shí)表示失?。?lt;/p><p> 操作成功則由ax存儲(chǔ)文件代號(hào),失敗則由ax存儲(chǔ)錯(cuò)誤代碼;</p><p> Cx用來(lái)存放文件屬性,CX=0時(shí)表示為普通文件;</p><p> 文件屬性是用來(lái)表示“活動(dòng)”文件的代號(hào),
17、“活動(dòng)”文件可以理解為使用中文件。</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.寫入文件內(nèi)容的實(shí)現(xiàn)</p><p> 文件內(nèi)容的寫入由entry、write實(shí)現(xiàn)。</p><p> 其中子程序entry用于輸入想要寫入的語(yǔ)句;</p><p> 而將內(nèi)容寫如文件的是子
19、程序write,</p><p> 大致分為三步:打開文件,寫入內(nèi)容,關(guān)閉文件,</p><p><b> 文件的打開:</b></p><p> 文件的打開通過(guò)運(yùn)用dos中的3dh調(diào)用實(shí)現(xiàn),</p><p> 由ds:dx確定文件路徑級(jí)文件名,</p><p> 由cf判定是否成功,&
20、lt;/p><p> Ax存放相應(yīng)的文件代號(hào)或錯(cuò)誤代碼,</p><p><b> Al存放存取代碼,</b></p><p> 存取代碼用于表示打開方式,0表示可讀,1表示可寫,2表示可讀可寫,3表示退出。</p><p><b> 內(nèi)容的寫入:</b></p><p>
21、; 內(nèi)容的寫入通過(guò)運(yùn)用dos中的40h調(diào)用實(shí)現(xiàn), </p><p> 由ds:dx表示地址,</p><p><b> Bx存放文件號(hào),</b></p><p> Cx表示寫入的字節(jié)數(shù)。</p><p><b> 文件的關(guān)閉:</b></p><p> 文件的關(guān)閉
22、通過(guò)運(yùn)用dos中的3eh調(diào)用實(shí)現(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> 則表示往當(dāng)前文件中寫入BUFFER中前60字節(jié)的內(nèi)容。</p><p><b> 4.文件的讀取</b></p><p> 文件的讀取由子程序read實(shí)現(xiàn)。</p
24、><p> 大致分為三步:打開文件,寫入內(nèi)容,關(guān)閉文件,</p><p> 由于打開與關(guān)閉以介紹,則只介紹讀取</p><p><b> 文件的讀取:</b></p><p> 文件的讀取通過(guò)運(yùn)用dos中的3fh調(diào)用實(shí)現(xiàn),</p><p> 有ds:dx表示存放地址,</p>
25、<p><b> Bx表示文件號(hào),</b></p><p> Cx表示讀取的字節(jié)數(shù),</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> 則表示讀取當(dāng)前文件中的前60字節(jié)并存放到DUFFER中,</p><p> 而讀取內(nèi)容的顯示則由dos中的9h調(diào)用實(shí)現(xiàn)。</p><p><b
27、> 5.退出</b></p><p> 當(dāng)前程序的退出通過(guò)運(yùn)用dos中的4ch調(diào)用實(shí)現(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 匯編語(yǔ)言課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)匯編語(yǔ)言
- 匯編語(yǔ)言課程設(shè)計(jì)-- 計(jì)算比賽成績(jī)系統(tǒng)
- 計(jì)算機(jī)組成原理與匯編語(yǔ)言課程設(shè)計(jì)(學(xué)生成績(jī)管理)
- 匯編課程設(shè)計(jì)---學(xué)生成績(jī)管理
- 學(xué)生成績(jī)管理匯編課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)--c語(yǔ)言課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 高級(jí)語(yǔ)言課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論