版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 佛山科學(xué)技術(shù)學(xué)院課程設(shè)計用紙課程設(shè)計說明書設(shè)計名稱: 操作系統(tǒng)課程設(shè)計 題 目: 操作系統(tǒng)命令接口設(shè)計 學(xué)生姓名: 專 業(yè): 班 級: 學(xué) 號: 指導(dǎo)教師: 日 期: 2016 年 6 月 28 日 課程設(shè)計任務(wù)書 網(wǎng)絡(luò)工程 專業(yè) 年級 班 一、 設(shè)計題目操作系統(tǒng)命令接口設(shè)計二、 主要內(nèi)容利用C語言、DOS中斷中21H與屏幕顯示相關(guān)的中斷調(diào)用完成設(shè)計,具體包括:1、 命令解釋器2、 列目錄命令3、 顯示時間命令4、 顯示日期命令5、 回顯字符串命令6、 創(chuàng)建目錄命令7、 刪除目錄命令8、 更改路徑命令9、 顯示當(dāng)前工作目錄命令10、刪除文件命令11、打印文本命令12、文件重新命名13、顯示文
2、本命令14、顯示版本命令15、顯示目錄結(jié)構(gòu)命令16、清除當(dāng)前顯示內(nèi)容命令上述內(nèi)容中,所有命令通過命令解釋器能夠執(zhí)行,即啟動命令解釋器以后,輸入相應(yīng)命令,按照輸入指令執(zhí)行相應(yīng)功能,并在屏幕上顯示相應(yīng)結(jié)果。三、 具體要求本設(shè)計的目的是通過設(shè)計一些簡單的操作系統(tǒng)的命令接口,使學(xué)生掌握操作系統(tǒng)接口的設(shè)計方法。要求學(xué)生在熟悉操作系統(tǒng)的命令接口及程序接口的基礎(chǔ)上,利用C語言設(shè)計簡單的命令接口。命令接口基于DOS的命令行接口。四、 進度安排依照教學(xué)計劃,課程設(shè)計時間為:2周。1. 要求講解、資料查找、系統(tǒng)分析,概要設(shè)計 (2天)2. 系統(tǒng)詳細設(shè)計、功能設(shè)計(2天)3. 算法實現(xiàn)、編程調(diào)試(5天)4. 功能演
3、示、資料整理、課程設(shè)計說明書編寫。(1天)五、 完成后應(yīng)上交的材料課程設(shè)計說明書紙質(zhì)文檔六、 總評成績指導(dǎo)教師 簽名日期 年 月 日系 主 任 審核日期 年 月 日2目錄一、程序概述11.1完成的任務(wù)11.2解決的問題1二、概念原理12.1基本概念12.2基本原理1三、總體設(shè)計2四、詳細設(shè)計34.1主要調(diào)用DOS的功能號34.2主要函數(shù)3五、完成情況3六、使用說明3七、設(shè)計總結(jié)47.1系統(tǒng)特色47.2實踐感受4參考資料5附 錄(程序源代碼)9一、程序概述1.1完成的任務(wù)本設(shè)計是要求編寫一個簡單的命令解釋器,利用C語言、DOS中斷中21H與屏幕顯示相關(guān)的中斷調(diào)用進行設(shè)計的,主要完成要求中所提到的
4、功能如:可打開提示符,并獲取用戶輸入的指令、可解析指令、可尋找命令文件、可執(zhí)行基本的命令。在本設(shè)計中,設(shè)計了一個dos命令提示行 ,主要完成的功能有:顯示系統(tǒng)時間和日期,顯示系統(tǒng)版本號,刪除文件,創(chuàng)建目錄,刪除目錄,重命名目錄或文件名,回顯字符串,打印文件,清屏等功能。 1.2解決的問題在設(shè)計過程中主要遇到了兩個難題,一是如何理解和設(shè)計中斷,對匯編和c語言的結(jié)合,如引入#include,#include;二是如何使用中斷函數(shù)如int86(),int86x(),int dos(),int 等。里面主要的是結(jié)構(gòu)體SREGS,聯(lián)合體REGS,以及匯編語言int 21H系統(tǒng)調(diào)用中斷,以及調(diào)用功能號的查
5、詢和設(shè)置。二、概念原理2.1基本概念中斷當(dāng)CPU(中央處理器)執(zhí)行一條現(xiàn)行指令的時候,出現(xiàn)必須CPU立即執(zhí)行處理的情況,CPU暫時停止當(dāng)前程序的執(zhí)行轉(zhuǎn)而而執(zhí)行新情況叫中斷,此時如果外設(shè)向CPU發(fā)出中斷請求,那么CPU在滿足響應(yīng)的情況下,將發(fā)出中斷響應(yīng)信號,與此同時關(guān)閉中斷,表示CPU不在受理另外一個設(shè)備的中斷。此次課程設(shè)計涉及有DOS中斷和BIOS中斷。命令接口處理器命令處理器是一個讀入并解釋你輸入的命令的程序,它是介于使用者和操作系統(tǒng)之核心程序(kernel)間的一個接口。它是一個交互性命令解釋器。命令處理器獨立于操作系統(tǒng),這種設(shè)計讓用戶可以靈活選擇適合自己的命令處理器 。命令處理器讓你在命
6、令行鍵入命令,經(jīng)過命令處理器解釋后傳送給操作系統(tǒng)(內(nèi)核)執(zhí)行。命令提示符“命令提示符”也就是Windows 95/98 下的“MS-DOS方式”,雖然隨著計算機產(chǎn)業(yè)的發(fā)展,Windows 操作系統(tǒng)的應(yīng)用越來越廣泛,DOS 面臨著被淘汰的命運,但是因為它運行安全、穩(wěn)定,有的用戶還在使用,所以一般Windows 的各種版本都與其兼容,用戶可以在Windows系統(tǒng)下運行DOS,中文版Windows XP 中的命令提示符進一步提高了與DOS下操作命令的兼容性,用戶可以在命令提示符直接輸入中文調(diào)用文件。消息循環(huán)通過這個循環(huán)機制應(yīng)用程序從消息隊列中檢索消息,再把它分派給適當(dāng)?shù)拇翱?,然后繼續(xù)從消息隊列中檢索
7、下一條消息,再分派給適當(dāng)?shù)拇翱?,依次進行。系統(tǒng)調(diào)用系統(tǒng)調(diào)用,顧名思義,說的是操作系統(tǒng)提供給用戶程序調(diào)用的一組“特殊”接口。用戶程序可以通過這組“特殊”接口來獲得操作系統(tǒng)內(nèi)核提供的服務(wù),比如用戶可以通過文件系統(tǒng)相關(guān)的調(diào)用請求系統(tǒng)打開文件、關(guān)閉文件或讀寫文件,可以通過時鐘相關(guān)的系統(tǒng)調(diào)用獲得系統(tǒng)時間或設(shè)置定時器等。從邏輯上來說,系統(tǒng)調(diào)用可被看成是一個內(nèi)核與用戶空間程序交互的接口,它好比一個中間人,把用戶進程的請求傳達給內(nèi)核,待內(nèi)核把請求處理完畢后再將處理結(jié)果送回給用戶空間。2.2基本原理首先進入一個消息循環(huán),不斷地接收消息,根據(jù)輸入的命令進行解析,然后執(zhí)行命令,遇exit命令退出?;玖鞒虉D:三、總
8、體設(shè)計程序主要通過文件來存儲帳戶信息。進入提示符后,在消息循環(huán)中運用了一個do while循環(huán),switchcase將dos條用編寫的函數(shù)組合起來供用戶選擇使用。連續(xù)的獲取用戶輸入,直到用戶輸入0退出循環(huán),結(jié)束程序。在處理文件或文件夾過程中,沒有使用系統(tǒng)當(dāng)前文件夾變量,只是在程序中單獨設(shè)定了一個變量作為系統(tǒng)當(dāng)前目錄,每次獲得的目錄路徑,如果是相對路徑,則自動在前面加上當(dāng)前目錄路徑。整個程序的設(shè)計流程,圍繞著消息循環(huán)這一主線,根據(jù)消息判斷調(diào)用不同的功能函數(shù)來完成相應(yīng)的功能,主要使用了一些函數(shù)和匯編調(diào)用DOS接口和21號中斷。四、詳細設(shè)計4.1、主要調(diào)用DOS的功能號2AH 讀取日期2CH 讀取時
9、間30H 讀取MS-DOS版本號39H創(chuàng)建目錄41H 刪除文件3AH表示刪除目錄56H重命名文件3DH 打開文件47H讀取當(dāng)前目錄3FH 讀文件或目錄4.2、主要函數(shù)void time() 通過定義該函數(shù)實現(xiàn)調(diào)用dos的2C號功能讀取系統(tǒng)時間的功能void day() 通過定義該函數(shù)實現(xiàn)調(diào)用dos的2A功能讀取系統(tǒng)日期的功能void dos() 通過定義該函數(shù)調(diào)用dos的30H功能讀取系統(tǒng)的版本號功能void DeleteFile(char filename80)定義該函數(shù)用于刪除文件或目錄如果刪除成功顯示“success”,刪除失敗表示找不到該文件void Createfile(char f
10、ilename80) 定義該函數(shù)調(diào)用dos的39H號功能用于創(chuàng)建一個目錄void file(char filename180,char filename280) 定于該函數(shù)調(diào)用dos系統(tǒng)的56號功能用于重命名目錄名和文件名的void showlist() 定于該函數(shù)調(diào)用dos系統(tǒng)的47號功能讀取當(dāng)前的工作目錄void rewords()定于該函數(shù)用于調(diào)用dos的9號功能實現(xiàn)回顯字符串功能void ReadFromFile(char filename80)定于該函數(shù)用于調(diào)用dos的3F功能用于讀取文件或目錄的內(nèi)容。clrscr();引用該函數(shù)實現(xiàn)清除屏幕內(nèi)容的功能。5、 完成情況本程序完成了要求
11、中的13項列目錄,包括獲取系統(tǒng)時間,獲取系統(tǒng)日期,創(chuàng)建目錄,刪除目錄,創(chuàng)建文件并寫內(nèi)容到文件中,打印文本,刪除文件,更改目錄或文件名,顯示版本,清屏操作,獲得當(dāng)前的工作目錄等13個要求6、 使用說明運行程序首先回出現(xiàn)下圖的界面,顯示的是各項操作的命令,根據(jù)相關(guān)命令可以執(zhí)行相關(guān)的操作 功能1:顯示系統(tǒng)時間功能2:系統(tǒng)日期: 功能3:顯示版本功能4:刪除文件:功能5:創(chuàng)建目錄功能6:刪除目錄刪除new文件夾:功能7:重命名目錄或文件修改目錄(重命名目錄):將上面目錄123修改為101修改文件(重命名文件):將文件名1.txt改為new1.txt功能8:顯示當(dāng)前工作目錄功能9:回顯字符串功能10:打
12、印文件內(nèi)容(讀文件)已知new1.txt文件里面的內(nèi)容如下,通過該系統(tǒng)讀出文件的內(nèi)容功能11:清除屏幕所有內(nèi)容清屏后:直至輸入指令為0(代表exit)時退出系統(tǒng)。七、設(shè)計總結(jié)7.1系統(tǒng)特色本系統(tǒng)基本實現(xiàn)命令訪問接口的設(shè)計,能正常解釋命令并執(zhí)行,在命令的解釋和執(zhí)行直接采用DOS系統(tǒng)的中斷調(diào)用以及功能類型號碼的選擇和設(shè)置,能夠符合操作系統(tǒng)命令接口設(shè)計的要求。7.2實踐感受課程設(shè)計是理論知識和實際操作的一種結(jié)合,對所學(xué)的知識進行強化。從確立課題到遇到問題查找資料,直到做出基本的結(jié)果,在這個過程中學(xué)到了之前所沒有接觸的知識點。例如在編程過程中要多使用庫函數(shù)中自帶的內(nèi)容,不必另外再去編寫已有的功能,這樣
13、不僅能節(jié)省時間,也能提高程序的可靠性。要多了解庫函數(shù),可以閱讀相應(yīng)的幫助文件來獲得有用的信息。遇到問題多與老師同學(xué)討論,可以幫助自己跳出定向思維。參考資料c程序設(shè)計(第三版)譚浩強 著 清華大學(xué)出版社80x86匯編語言程序設(shè)計沈美明,溫冬嬋著 清華大學(xué)出版社c與c+標(biāo)準(zhǔn)類庫及函數(shù).chmWindows API for 2000/XP實例精解 王強 周明 李定國 等編著 電子工業(yè)出版社數(shù)據(jù)結(jié)構(gòu)(c語言版)嚴(yán)蔚敏,吳偉民等編著 清華大學(xué)出版社 附 錄源代碼(Torbo C 3.0環(huán)境下)#include #include #include #include #include #define INT
14、ER 0x21 void menu() printf(-n);printf(0.exitn);printf(1.Display system timen);printf(2.Display system dayn);printf(3.Display Mos-dos versionn);printf(4.Deletefilen);printf(5.Createcontentn);printf(6.Deletecontentsn);printf(7.Filenamen);printf(8.Display currrent listn);printf(9.Echo stringn); printf(
15、10.ReadingFilen); printf(11.Clear screenn);printf(-n); void time() union REGS inregs,outregs;/定義中斷信息結(jié)構(gòu)體 struct SREGS segregs; inregs.h.ah=0x2C; /讀取時間int86x(INTER,&inregs,&outregs,&segregs);printf(Now the time is:%d:%d:%dn,outregs.h.ch,outregs.h.cl,outregs.h.dh); getchar(); void day() union REGS inre
16、gs,outregs;/定義中斷信息結(jié)構(gòu)體 struct SREGS segregs; inregs.h.ah=0x2a; /讀取日期int86x(INTER,&inregs,&outregs,&segregs); printf(Now the day is:%d,%d,%dn,outregs.x.cx,outregs.h.dh,outregs.h.dl);getchar(); void dos() union REGS inregs,outregs;/定義中斷信息結(jié)構(gòu)體 struct SREGS segregs; inregs.h.ah=0x30;/DOS 30號功能 讀取MS-DOS版本號
17、int86x(INTER,&inregs,&outregs,&segregs);printf(The DOS version of this machine is:%d,%d,%d,%d:%dn,outregs.h.al,outregs.h.ah,outregs.h.bh,outregs.h.ah,outregs.x.cx); getchar(); void DeleteFile(char filename80) int result;union REGS inregs,outregs; struct SREGS segregs; inregs.h.ah=0x41;/DOS 中斷號 41 是刪
18、除文件 inregs.x.dx=FP_OFF(filename); segregs.ds=FP_SEG(filename); int86x(INTER,&inregs,&outregs,&segregs); if(result=2|result=5)printf(nCant delete the file:%s The file may not be exist!n,filename);elseprintf(nThe file:%s has been delete successfully! n,filename);void Createfile(char filename80) union
19、REGS inregs,outregs; struct SREGS segregs; inregs.h.ah=0x39; inregs.x.dx=FP_OFF(filename); segregs.ds=FP_SEG(filename); int86x(INTER,&inregs,&outregs,&segregs); if(02=outregs.x.ax)/02 表示文件未找到 printf(nFILE %s is not exist!n,filename); printf(success!n); void Deletefile(char filename80) int result;uni
20、on REGS inregs,outregs; struct SREGS segregs;inregs.h.ah=0x3A; /3A 表示刪除目錄inregs.x.dx=FP_OFF(filename); segregs.ds=FP_SEG(filename); int86x(INTER,&inregs,&outregs,&segregs);result=outregs.x.ax;if(result=2|result=5)printf(nCant delete the file:%s The file may not be exist!n,filename);elseprintf(nThe f
21、ile:%s has been delete successfully! n,filename);void file(char filename180,char filename280) union REGS inregs,outregs; struct SREGS segregs; inregs.h.ah=0x56;/DOS 中斷號 56 是重命名文件 inregs.x.dx=FP_OFF(filename1); segregs.ds=FP_SEG(filename1); inregs.x.di=FP_OFF(filename2); segregs.es=FP_SEG(filename2);
22、 int86x(INTER,&inregs,&outregs,&segregs);if(outregs.x.ax=02) printf(nFILE %s is not exist!n,filename1); printf(success!n); void showlist() char list80; union REGS reg; struct SREGS segreg;reg.h.ah = 0x47;/47H 讀取當(dāng)前目錄reg.h.dl = 0;reg.x.si = FP_OFF(list); segreg.ds = FP_SEG(list);intdosx(®, ®, &s
23、egreg); printf(The current working directory is:%sn, list); void rewords() union REGS reg,reg1;struct SREGS sreg; char word200; for(int i=0;i200;i+) wordi=$; scanf(%s,&word);reg1.x.dx = FP_OFF(word); sreg.ds = FP_SEG(word); reg1.h.ah=0x09; int86x(INTER,®1,®1,&sreg); printf(n); void ReadFromFil
24、e(char filename80)union REGS inregs,outregs;struct SREGS segregs;int result;char ReadContents9*1024;inregs.h.ah=0x3D;/3D 打開文件inregs.x.dx=FP_OFF(filename);segregs.ds=FP_SEG(filename);inregs.h.al=2;int86x(0x21,&inregs,&outregs,&segregs);result=outregs.x.ax;if(2=result)printf(n Cant read contents from
25、file:%s! The file may not be exist.n,filename);elseinregs.x.bx=result;inregs.h.ah=0x3F;/讀文件或者目錄inregs.x.dx=FP_OFF(ReadContents);segregs.ds=FP_SEG(ReadContents);inregs.x.cx=1024;int86x(0x21,&inregs,&outregs,&segregs);printf(n Real Number of read characters in file:%s:%dn,filename,outregs);printf(nThe contents of file:%s!n,filename);for(int i=0;ioutregs.x.ax;i+)printf(%c,ReadContentsi);printf(n);int main() char DeleteFileName80; char ReadingFileName80;c
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《分餾系統(tǒng)》課件
- 《媽媽的賬單課堂》課件
- 小學(xué)一年級20以內(nèi)100道口算題
- 電工安全培訓(xùn)資料(5篇)
- 石榴籽一家親民族團結(jié)心連心心得體會5篇
- 小學(xué)數(shù)學(xué)一二年級100以內(nèi)連加連減口算題
- 《用戶畫像業(yè)務(wù)討論》課件
- 小學(xué)數(shù)學(xué)三年級下冊《小數(shù)點加減法》口算練習(xí)題
- 《刑事訴訟法學(xué)教學(xué)》課件
- 小學(xué)三年級數(shù)學(xué)三位數(shù)加減法練習(xí)題-可直接打印
- 2024年滬教版一年級上學(xué)期語文期末復(fù)習(xí)習(xí)題
- 部編版四年級上冊道德與法治期末測試卷
- DB11T 1805-2020 實驗動物 病理學(xué)診斷規(guī)范
- 2024廣東省廣州市天河區(qū)中考一模語文試題含答案解析
- 中國移動-AI+智慧城市安全解決方案白皮書2024
- 前臺文員的工作靈活性與適應(yīng)能力計劃
- 2024版【人教精通版】小學(xué)英語六年級下冊全冊教案
- 人教版歷史2024年第二學(xué)期期末考試七年級歷史試卷(含答案)
- 2024年秋八年級歷史上冊 第24課 人民解放戰(zhàn)爭的勝利教案 新人教版
- 預(yù)算法及實施條例測試題(含答案)
- 提高護士應(yīng)用PDA落實患者身份識別準(zhǔn)確率 2
評論
0/150
提交評論