版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、學號課程設計題 目磁盤文件讀寫程序設計學院自動化專業(yè)自動化班級1102姓名指導教師張丹紅2014年 1 月 14 日課程設計任務書學生姓名: 專業(yè)班級:自動化1102指導教師:張丹紅工作單位:自動化學院題目:磁盤文件讀寫程序設計初始條件:帶有編輯器、匯編程序、連接程序和調(diào)試程序的電腦一臺。要求完成的主要任務:32個(包括課程設計工作量及其技術(shù)要求,以及說明書撰寫等具體要求)采用匯編語言設計一個讀寫磁盤文件的程序。建立一個文件,向文件中寫入字節(jié)內(nèi)容并讀出,操作成功后顯示提示OK,按Q退出程序。(1)設計任務及要求分析(2)方案比較及認證說明(3)系統(tǒng)原理闡述(4)軟件設計課題需要說明:軟件思想,
2、流程圖,源程序及程序注釋(5)調(diào)試記錄及結(jié)果分析(6)總結(jié)(7)參考資料(8)附錄:心片資料或程序清單,軟件演示屏幕拷貝圖或硬件實物圖時間安排:1月6日1月8日:收集資料,方案選擇1月9日1月12日:整體設計,程序編寫1月13日1月16日:調(diào)試程序,報告撰寫1月17日:交設計報告,程序演示,答辯指導教師簽名:年 月系主任(或責任教師)簽名:匯編語言是面向機器的程序設計語言。在匯編語言中,用助記符代替機器指令的操 作碼,用地址符號或標號代替指令或操作數(shù)的地址,如此就增強了程序的可讀性并且降 低了編寫難度,象這樣符號化的程序設計語言就是匯編語言,因此亦稱為符號語言。使 用匯編語言編寫的程序,機器不
3、能直接識別,還要由匯編程序或者叫匯編語言編譯器轉(zhuǎn) 換成機器指令。匯編程序?qū)⒎柣牟僮鞔a組裝成處理器可以識別的機器指令,這個 組裝的過程稱為組合或者匯編。因此,有時候人們也把匯編語言稱為組合語言。匯編語言是一種功能性很強的程序設計語言,也是利用計算機所有硬件特性并能直 接控制硬件的語言。匯編語言,作為一門語言,應對與高級語言的編譯器,需要一個“匯 編器”來把匯編語言原文件匯編成機器可執(zhí)行的代碼。高級匯編器如MASM就為我們寫程序提供了很多類似于高級語言的特征,比如結(jié)構(gòu)化、抽象等。在這樣的環(huán)境中編寫 的匯編程序,有很大一部分是面向匯編器的偽指令,已經(jīng)類同于高級語言。現(xiàn)在的匯編 環(huán)境已經(jīng)如此高級
4、,即使全部用匯編語言來編寫windows的應用程序也是可行的,但這不是匯編語言的長處。匯編語言的長處在于編寫高效而且需要對機器語言精確控制的 程序。此次課設將使用匯編語言和 MASM軟件設計一個對磁盤文件進行讀寫的程序。關(guān)鍵詞:匯編 MASM磁盤讀寫編譯程序設計1設計任務及要求分析1.1設計任務及要求1.2設計任務分析2方案比較及認證說明2.1寫文件2.2讀文件2.3方案比較3系統(tǒng)實現(xiàn)原理說明3.1程序設計思想3.2程序中用到的DOS功能調(diào)用4程序流程圖4.1寫文件程序流程圖4.2讀文件程序流程圖5程序設計結(jié)果顯示5.1寫文件程序運行結(jié)果5.2讀文件程序運行結(jié)果6調(diào)試記錄與分析心得體會參考文獻
5、附錄一:寫文件源程序附錄二:讀文件源程序磁盤文件讀寫程序設計1設計任務及要求分析1.1設計任務及要求設計要求:采用匯編語言設計一個讀寫磁盤文件的程序。建立一個文件,向文件中 寫入32個字節(jié)內(nèi)容并讀出,操作成功后顯示提示 0K,按Q退出程序。設計任務:(1)設計任務及要求分析(2)方案比較及認證說明(3)系統(tǒng)原理闡述(4)軟件設計課題需要說明:軟件思想、流程圖、源程序及程序注釋(5)調(diào)試記錄及結(jié)果分析(6)總結(jié)(7)參考資料(8)附錄:芯片資料或程序清單,軟件演示屏幕拷貝圖或硬件實物圖1.2設計任務分析由要求可知,本題目是一道文件讀取的題目,程序主要是分兩步走:(1) 寫文件:建立一個文本文件,
6、寫入內(nèi)容,若操作成功則顯示0K”,若失敗則 顯示“BAD,按“Q可退出程序。(2)讀文件:從建立的文件中讀取32個字節(jié)并顯示內(nèi)容,若操作成功則顯示 0K”,若失敗則顯示“BAD,按“Q可退出程序2方案論證及說明2.1寫文件按要求需要建立一個文件,向文件中寫入內(nèi)容,程序如下:mov ax , datamov ds , ax;目錄路徑名的ASCII字符串的段地址mov dx , offset filemov ex , 0;目錄路徑名的ASCII字符串的偏移地址mov ah , 3ehint 21h;調(diào)用功能3CH創(chuàng)建新的文件je error;創(chuàng)建出錯,轉(zhuǎn)error處mov han dle , ax
7、;保存文件號mov bx , ax;bx文件控制字mov cx , 255;cx要寫的字節(jié)數(shù)mov dx , offset buf;dx內(nèi)存緩沖區(qū)的偏移地址mov ah , 40h;調(diào)用功能40H實現(xiàn)內(nèi)存緩沖區(qū)中的數(shù)據(jù)寫入到磁盤文件或 設備int 21h;向文件中與入32個字節(jié)內(nèi)容2.2讀文件打開創(chuàng)建的文件并讀取文件中的前 32個字符的內(nèi)容,程序如下:mov ax , datamov ds , ax;目錄路徑名的ASCII字符串的段地址mov dx , offset filemov al , 0;目錄路徑名的ASCII字符串的偏移地址mov ah , 3dhint 21h;調(diào)用功能3DH打開指
8、定文件jc error;若打開出錯,轉(zhuǎn)errormov han dle , axmov bx , ax;保存文件號mov ex , 32;要讀取的字節(jié)數(shù)mov dx , offset buf;內(nèi)存緩沖區(qū)的偏移地址mov ah , 3fhint 21h;調(diào)用功能3FH從文件中讀32字節(jié)一bufje error;若讀出錯,轉(zhuǎn)errormov bx , ax;實際讀到的字符數(shù)送入bxmov bufbx , $mov dx , offset buf;在文件結(jié)束處放置一 “ $符mov ah , 9h;DOS功能調(diào)用輸出一串字符int 21h;顯示文件內(nèi)容mov bx , han diemov ah ,
9、 3ehint 21h;調(diào)用功能3EH關(guān)閉文件2.3方案比較文件讀取有4種方式:順序存取方式、隨機存取方式、隨即分塊存取方式以及文件 代號式磁盤存取方式。相比于其它三種方式,文件代號式磁盤存取方式中有關(guān)文件的各種信息都包括在 DOS中,對用戶時透明的,在處理指定文件時,必須使用一個完整的路徑名。對各種錯 誤采取了更統(tǒng)一的處理方法,操作過程中,AX中回送錯誤代碼,這些錯誤代碼對所有的代號式存取功能都是相同的,為用戶進行分析提供了方便。3系統(tǒng)實現(xiàn)原理說明3.1程序設計思想由設計題目 建立一個文件,從文件中讀32字節(jié),顯示文件內(nèi)容,操作成功后顯示 提示0K,操作失敗后顯示提示BAD,按Q退出程序?!?/p>
10、可知大致可分兩步走,建立文 件,讀取并顯示文件內(nèi)容。通過查閱資料了解到文件代號式存取方式的方法,通過DOS 中斷調(diào)用21H完成。建立磁盤文件:寫一個新文件或重寫一個舊文件,首先要建立文件并賦給它一個屬 性。如果DOS發(fā)現(xiàn)要建立的文件已經(jīng)存在,那么原來的文件就被破壞。建立文件的功 能調(diào)用是3CH。寫磁盤文件是利用功能調(diào)用 40H,要寫入的字數(shù)放在CX中,輸入緩沖 區(qū)的地址放在DX中。讀取磁盤文件:讀文件或設備的功能調(diào)用是3FH,要求先把文件打開取得文件代號, 然后按照制定的字節(jié)數(shù)從磁盤把文件讀出,讀入內(nèi)存中預先定義好的數(shù)據(jù)緩沖區(qū)。如果 讀入的字節(jié)數(shù)大于緩沖區(qū)空間,那么這些多余的數(shù)據(jù)將送到程序所占
11、空間之上的存儲器 中。打開文件操作的功能調(diào)用是 3DH,需要檢查文件名是否合法,文件是否有效。3.2程序中用到的DOS功能調(diào)用(1) 9H :在標準輸出設備輸出一串字符。調(diào)用:AH=0AHDS=輸入緩沖區(qū)的段地址DX=輸入緩沖區(qū)的偏移地址(2) 3CH :創(chuàng)建新的文件或?qū)⒋疟P上已存在的文件的長度變成0。調(diào)用:AH=3CHDS=驅(qū)動器和目錄路徑名的 ASCII字符串的段地址DX=驅(qū)動器和目錄路徑名的 ASCII字符串的偏移地址3DH :打開指定的文件。調(diào)用:AH=3DHDS=驅(qū)動器和目錄路徑名的 ASCII字符串的段地址DX=驅(qū)動器和目錄路徑名的 ASCII字符串的偏移地址(4) 3EH:關(guān)閉指
12、定的文件。調(diào)用:AH=3EHBX=打開或創(chuàng)建時返回的文件控制字(5) 3FH:將指定的文件或設備的數(shù)據(jù)讀入內(nèi)存緩沖區(qū)中。調(diào)用:AH=3FHBX=文件控制字DS=內(nèi)存緩沖區(qū)的段地址DX=內(nèi)存緩沖區(qū)的偏移地址CX=要讀取的字節(jié)數(shù)(6) 21H:將當前塊和當前記錄所表示的記錄讀入磁盤傳送地址。調(diào)用:AH=21H40H:將內(nèi)存的緩沖區(qū)中的數(shù)據(jù)寫入到磁盤文件或設備。調(diào)用:AH=40HBX=文件控制字DS=內(nèi)存緩沖區(qū)的段地址DX=內(nèi)存緩沖區(qū)的偏移地址CX=要寫的字節(jié)數(shù)(8) 4CH :結(jié)束當前的進程,控制返回給調(diào)用該進程的程序。調(diào)用:AH=4CHAL=返回值4程序流程圖4.1寫文件程序流程圖建立文件思路為
13、:輸入文件名創(chuàng)建文件判斷文件是否存在寫入文件內(nèi)容關(guān)閉文件開始創(chuàng)建文件判斷文 件是否 存在丫 覆蓋原文件寫入文件 內(nèi)容 關(guān)閉文件N判斷操失敗顯示作存在BADY成功顯示OK- 1結(jié)束圖4-1寫文件程序流程圖4.2讀文件程序流程圖讀取文件思路為:找到并打開指定位置文件一讀取文件一顯示文件前32個字符一關(guān)閉 文件開始打開文 件顯示文件關(guān)閉文 件失敗顯示BAD判斷操 作是否 成功Y成功顯示0K結(jié)束圖4-2讀文件程序流程圖程序運行成功顯示 OK ”,按“Q或“q退出圖5-1寫文件程序運行結(jié)果5程序設計結(jié)果顯示5.1寫文件程序運行結(jié)果5.2讀文件程序運行結(jié)果圖5-2讀文件程序運行結(jié)果程序運行成功顯示文件前3
14、2個字符并顯示OK”,按“Q或“c退出6調(diào)試記錄與分析本程序應用的主要是DOS中斷調(diào)用21H里面的功能,如9H、3CH、3DH等。由于 以前接觸較少的原因,使用不熟練,出現(xiàn)了一些問題。經(jīng)過詳細的對課本和圖書館借來 的資料的了解,以及同學的幫助最終順利的完成了程序。通過圖書館以及上網(wǎng)查閱的一些資料大致了解了磁盤文件讀寫的框架程序的編寫。 完成寫文件程序的主要部分,運行的時候出現(xiàn)問題。運行完成程序自動退出,未能按要 求實現(xiàn) 按 C c退出”查閱相關(guān)資料以后知道可以在程序開始定義“exit_message 最后加上1H功能調(diào)用可以實現(xiàn)。完成讀文件程序的內(nèi)容后運行程序,運行出錯顯示了“BAD ”查找原
15、因。后來發(fā)現(xiàn)是寫入內(nèi)容不足32個字符,無法讀出,故出錯。后來在寫文件程序里改了寫入內(nèi)容 夠了 32個字符以后運行成功。通過不斷的調(diào)試、運行,我認識到編程序是需要耐心與細心才能完成的事情,磨練 了我們的毅力。心得體會課程設計的過程是綜合運用所學知識的過程。要求將課本中分布獨立學習的知識, 在設計中綜合加以應用,從而對所學知識有更進一步的理解、鞏固、和發(fā)展,并掌握在 理論學習時忽略的細節(jié)和要點。通過課程設計,提高學生綜合運用所學知識分析問題、 解決問題的能力,同時,通過查找、運用設計資料,完成工程設計所必備的基本訓練。本次的課程設計的題目是 磁盤文件讀取”,通過老師給的資料去圖書館查閱書籍, 找到
16、了完成該題目的框架程序,就是利用 DOS功能調(diào)用21H里面的幾種功能實現(xiàn)。同 時,通過查閱資料還了解了一些其他的匯編相關(guān)的知識,強化了自己的理論知識。整個課程設計過程應該說還是比較順利的,框架程序確定后,回來在電腦上一步步 運行,調(diào)試,知道達到要求,可以實現(xiàn)預訂的效果。過程中,遇到一些困難,都是通過 查閱資料或請教同學解決的,無形中加深了同學之間的感情,也提升了自己的能力。完成了課程設計,不僅僅有一種完成作業(yè)的快感,更是為自己學習的東西可以在實 踐中應用感到興奮。一次次的課程設計,不進強化了我們的理論知識,加強了我們的動 手能力,讓我們更深入的了解理論結(jié)合實踐的重要性,不能只局限于紙上寫寫畫畫
17、,這 對我們以后的學習、工作都有好處??傊n程設計是我們的一門必修課,通過了它,我們以后的路才會更順暢參考文獻1 沈美明、溫冬嬋.IBM PC匯編語言程序設計(第二版)北京:清華大學出版社.20052 索梅、鄭甫京、張鹿.80386/80286匯編語言程序設計北京:清華大學出版社.19943 周佩玲、彭虎、傅忠謙.微機原理與接口技術(shù).北京:電子工業(yè)出版社.20054 齊志儒、高福祥.匯編語言程序設計.沈陽:東北大學出版社.2001馮萍、史新福.匯編語言與接口技術(shù).北京:機械工業(yè)出版社.2002附錄一:寫文件源程序datasegme nt;數(shù)據(jù)段開始filedbe:R_Ha nd.txt ,
18、0;創(chuàng)建文件的文件名bufdbTraveli ng to ano ther country is good 寫至 U文件中去的內(nèi)容error_message db0ah , BAD ! , $;出錯時的提示exit_messagedb0dh,0ah,Press Q or q to exit,or others to continue!,0dh,0ah,$;按Q或 q退出messagedb0ah , OK !$;操作成功后的提示han dledw?;保存文件號dataends;數(shù)據(jù)段結(jié)束codesegme nt;代碼段開始assume cs:code , ds:datastart:error:m
19、ov ax , datamov ds , axmov dx , offset file;目錄路徑名的字符串偏移地址mov cx , 0;文件屬性mov ah , 3ch;調(diào)用功能3CH建立新的文件int 21hjc error;創(chuàng)建出錯,轉(zhuǎn)error處mov han dle , ax;保存文件號mov bx , ax;bx文件控制字mov cx , 32;cx要寫的字節(jié)數(shù)mov dx , offset buf;dx內(nèi)存緩沖區(qū)的偏移地址mov ah , 40h;調(diào)用功能40H實現(xiàn)內(nèi)存緩沖區(qū)中的數(shù)據(jù)寫入到磁盤文件或設備int 21h;向文件中與入32個字節(jié)內(nèi)容jc error;寫出錯,轉(zhuǎn)error
20、處mov bx , han dlemov ah , 3eh;調(diào)用功能3EH關(guān)閉文件int 21hjc error;關(guān)閉文件出錯,轉(zhuǎn)error處mov dx , offset messagemov ah , 9h;調(diào)用功能9H顯示輸出字符int 21h;操作成功后顯示提示jmp end1mov dx , offset error_messagemov ah , 9h;調(diào)用功能9H顯示輸出字符int 21h;顯示錯誤提示en d1:mov dx,offset exit_message;調(diào)用功能9H顯示輸出字符;輸出顯示al的內(nèi)容;退出顯示;調(diào)用功能4CH結(jié)束當前的進程,;代碼段結(jié)束over:返回主
21、程序code ends mov ah,9h int 21hmov ah,1h int 21hcmp al,Q jz overcmp al,q jz over jmp startmov ah , 4chint 21hend start附錄二:讀文件的源程序datasegme nt;數(shù)據(jù)段開始filedbe:R_Ha nd.txt , 0;文件名bufdb33 dup(O);文件內(nèi)容暫存區(qū)error_messagedb0ah , BAD! , $;出錯時的提示messagedb0ah , OK!,$;操作成功后的提示exit_messagedb0dh,0ah,Press Q or q to exi
22、t,or others to contin ue!,0dh,0ah,$;按9”或“q”退出han dledw?;保存文件號dataends;數(shù)據(jù)段結(jié)束codesegme nt;代碼段開始assume cs:code , ds:datastart:mov ax , data mov ds , ax;目錄名段地址mov dx , offset file;目錄名偏移地址mov al , 0;表示為讀取而打開文件mov ah , 3dh;調(diào)用功能3DH打開文件int 21h jc error;若打開出錯,轉(zhuǎn)errormov han dle , ax;保存文件號mov bx , axmov cx , 32;要讀取的字節(jié)數(shù)mov dx , offset buf;內(nèi)存緩沖區(qū)的偏移地址mov ah , 3f
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江大學《全球變化與地表過程》2023-2024學年第一學期期末試卷
- 漳州職業(yè)技術(shù)學院《服裝結(jié)構(gòu)設計研究》2023-2024學年第一學期期末試卷
- 生產(chǎn)調(diào)度軟件市場競爭格局
- 專業(yè)基礎-房地產(chǎn)經(jīng)紀人《專業(yè)基礎》模擬試卷2
- 房地產(chǎn)交易制度政策-《房地產(chǎn)基本制度與政策》點睛提分卷3
- 先進班組長先進事跡材料
- 二零二五年電子競技俱樂部店鋪租賃合同樣本6篇
- 外研版小學英語六年級下冊小升初一般現(xiàn)在時專項訓練(含答案)
- 信陽農(nóng)林學院《機械設計基礎2》2023-2024學年第一學期期末試卷
- 二零二五年智慧養(yǎng)老項目合同2025版協(xié)議書2篇
- 建設工程總承包計價規(guī)范
- 大同市陽高縣王官屯50MW風電項目220kV升壓站及送出工程環(huán)評報告
- GB/T 2992-1998通用耐火磚形狀尺寸
- 英語名著閱讀老人與海教學課件(the-old-man-and-the-sea-)
- 學校食品安全知識培訓課件
- 全國醫(yī)學博士英語統(tǒng)一考試詞匯表(10000詞全) - 打印版
- 最新《會計職業(yè)道德》課件
- DB64∕T 1776-2021 水土保持生態(tài)監(jiān)測站點建設與監(jiān)測技術(shù)規(guī)范
- ?中醫(yī)院醫(yī)院等級復評實施方案
- 數(shù)學-九宮數(shù)獨100題(附答案)
- 理正深基坑之鋼板樁受力計算
評論
0/150
提交評論