版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 佛山科學(xué)技術(shù)學(xué)院課程設(shè)計(jì)用紙課程設(shè)計(jì)說明書設(shè)計(jì)名稱: 操作系統(tǒng)課程設(shè)計(jì) 題 目: 操作系統(tǒng)命令接口設(shè)計(jì) 學(xué)生姓名: 專 業(yè): 班 級: 學(xué) 號: 指導(dǎo)教師: 日 期: 2016 年 6 月 28 日 課程設(shè)計(jì)任務(wù)書 網(wǎng)絡(luò)工程 專業(yè) 年級 班 一、 設(shè)計(jì)題目操作系統(tǒng)命令接口設(shè)計(jì)二、 主要內(nèi)容利用C語言、DOS中斷中21H與屏幕顯示相關(guān)的中斷調(diào)用完成設(shè)計(jì),具體包括:1、 命令解釋器2、 列目錄命令3、 顯示時(shí)間命令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è)計(jì)的目的是通過設(shè)計(jì)一些簡單的操作系統(tǒng)的命令接口,使學(xué)生掌握操作系統(tǒng)接口的設(shè)計(jì)方法。要求學(xué)生在熟悉操作系統(tǒng)的命令接口及程序接口的基礎(chǔ)上,利用C語言設(shè)計(jì)簡單的命令接口。命令接口基于DOS的命令行接口。四、 進(jìn)度安排依照教學(xué)計(jì)劃,課程設(shè)計(jì)時(shí)間為:2周。1. 要求講解、資料查找、系統(tǒng)分析,概要設(shè)計(jì) (2天)2. 系統(tǒng)詳細(xì)設(shè)計(jì)、功能設(shè)計(jì)(2天)3. 算法實(shí)現(xiàn)、編程調(diào)試(5天)4. 功能演
3、示、資料整理、課程設(shè)計(jì)說明書編寫。(1天)五、 完成后應(yīng)上交的材料課程設(shè)計(jì)說明書紙質(zhì)文檔六、 總評成績指導(dǎo)教師 簽名日期 年 月 日系 主 任 審核日期 年 月 日2目錄一、程序概述11.1完成的任務(wù)11.2解決的問題1二、概念原理12.1基本概念12.2基本原理1三、總體設(shè)計(jì)2四、詳細(xì)設(shè)計(jì)34.1主要調(diào)用DOS的功能號34.2主要函數(shù)3五、完成情況3六、使用說明3七、設(shè)計(jì)總結(jié)47.1系統(tǒng)特色47.2實(shí)踐感受4參考資料5附 錄(程序源代碼)9一、程序概述1.1完成的任務(wù)本設(shè)計(jì)是要求編寫一個(gè)簡單的命令解釋器,利用C語言、DOS中斷中21H與屏幕顯示相關(guān)的中斷調(diào)用進(jìn)行設(shè)計(jì)的,主要完成要求中所提到的
4、功能如:可打開提示符,并獲取用戶輸入的指令、可解析指令、可尋找命令文件、可執(zhí)行基本的命令。在本設(shè)計(jì)中,設(shè)計(jì)了一個(gè)dos命令提示行 ,主要完成的功能有:顯示系統(tǒng)時(shí)間和日期,顯示系統(tǒng)版本號,刪除文件,創(chuàng)建目錄,刪除目錄,重命名目錄或文件名,回顯字符串,打印文件,清屏等功能。 1.2解決的問題在設(shè)計(jì)過程中主要遇到了兩個(gè)難題,一是如何理解和設(shè)計(jì)中斷,對匯編和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)行指令的時(shí)候,出現(xiàn)必須CPU立即執(zhí)行處理的情況,CPU暫時(shí)停止當(dāng)前程序的執(zhí)行轉(zhuǎn)而而執(zhí)行新情況叫中斷,此時(shí)如果外設(shè)向CPU發(fā)出中斷請求,那么CPU在滿足響應(yīng)的情況下,將發(fā)出中斷響應(yīng)信號,與此同時(shí)關(guān)閉中斷,表示CPU不在受理另外一個(gè)設(shè)備的中斷。此次課程設(shè)計(jì)涉及有DOS中斷和BIOS中斷。命令接口處理器命令處理器是一個(gè)讀入并解釋你輸入的命令的程序,它是介于使用者和操作系統(tǒng)之核心程序(kernel)間的一個(gè)接口。它是一個(gè)交互性命令解釋器。命令處理器獨(dú)立于操作系統(tǒng),這種設(shè)計(jì)讓用戶可以靈活選擇適合自己的命令處理器 。命令處理器讓你在命
6、令行鍵入命令,經(jīng)過命令處理器解釋后傳送給操作系統(tǒng)(內(nèi)核)執(zhí)行。命令提示符“命令提示符”也就是Windows 95/98 下的“MS-DOS方式”,雖然隨著計(jì)算機(jī)產(chǎn)業(yè)的發(fā)展,Windows 操作系統(tǒng)的應(yīng)用越來越廣泛,DOS 面臨著被淘汰的命運(yùn),但是因?yàn)樗\(yùn)行安全、穩(wěn)定,有的用戶還在使用,所以一般Windows 的各種版本都與其兼容,用戶可以在Windows系統(tǒng)下運(yùn)行DOS,中文版Windows XP 中的命令提示符進(jìn)一步提高了與DOS下操作命令的兼容性,用戶可以在命令提示符直接輸入中文調(diào)用文件。消息循環(huán)通過這個(gè)循環(huán)機(jī)制應(yīng)用程序從消息隊(duì)列中檢索消息,再把它分派給適當(dāng)?shù)拇翱?,然后繼續(xù)從消息隊(duì)列中檢索
7、下一條消息,再分派給適當(dāng)?shù)拇翱冢来芜M(jìn)行。系統(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)閉文件或讀寫文件,可以通過時(shí)鐘相關(guān)的系統(tǒng)調(diào)用獲得系統(tǒng)時(shí)間或設(shè)置定時(shí)器等。從邏輯上來說,系統(tǒng)調(diào)用可被看成是一個(gè)內(nèi)核與用戶空間程序交互的接口,它好比一個(gè)中間人,把用戶進(jìn)程的請求傳達(dá)給內(nèi)核,待內(nèi)核把請求處理完畢后再將處理結(jié)果送回給用戶空間。2.2基本原理首先進(jìn)入一個(gè)消息循環(huán),不斷地接收消息,根據(jù)輸入的命令進(jìn)行解析,然后執(zhí)行命令,遇exit命令退出?;玖鞒虉D:三、總
8、體設(shè)計(jì)程序主要通過文件來存儲帳戶信息。進(jìn)入提示符后,在消息循環(huán)中運(yùn)用了一個(gè)do while循環(huán),switchcase將dos條用編寫的函數(shù)組合起來供用戶選擇使用。連續(xù)的獲取用戶輸入,直到用戶輸入0退出循環(huán),結(jié)束程序。在處理文件或文件夾過程中,沒有使用系統(tǒng)當(dāng)前文件夾變量,只是在程序中單獨(dú)設(shè)定了一個(gè)變量作為系統(tǒng)當(dāng)前目錄,每次獲得的目錄路徑,如果是相對路徑,則自動在前面加上當(dāng)前目錄路徑。整個(gè)程序的設(shè)計(jì)流程,圍繞著消息循環(huán)這一主線,根據(jù)消息判斷調(diào)用不同的功能函數(shù)來完成相應(yīng)的功能,主要使用了一些函數(shù)和匯編調(diào)用DOS接口和21號中斷。四、詳細(xì)設(shè)計(jì)4.1、主要調(diào)用DOS的功能號2AH 讀取日期2CH 讀取時(shí)
9、間30H 讀取MS-DOS版本號39H創(chuàng)建目錄41H 刪除文件3AH表示刪除目錄56H重命名文件3DH 打開文件47H讀取當(dāng)前目錄3FH 讀文件或目錄4.2、主要函數(shù)void time() 通過定義該函數(shù)實(shí)現(xiàn)調(diào)用dos的2C號功能讀取系統(tǒng)時(shí)間的功能void day() 通過定義該函數(shù)實(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)建一個(gè)目錄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號功能實(shí)現(xiàn)回顯字符串功能void ReadFromFile(char filename80)定于該函數(shù)用于調(diào)用dos的3F功能用于讀取文件或目錄的內(nèi)容。clrscr();引用該函數(shù)實(shí)現(xiàn)清除屏幕內(nèi)容的功能。5、 完成情況本程序完成了要求
11、中的13項(xiàng)列目錄,包括獲取系統(tǒng)時(shí)間,獲取系統(tǒng)日期,創(chuàng)建目錄,刪除目錄,創(chuàng)建文件并寫內(nèi)容到文件中,打印文本,刪除文件,更改目錄或文件名,顯示版本,清屏操作,獲得當(dāng)前的工作目錄等13個(gè)要求6、 使用說明運(yùn)行程序首先回出現(xiàn)下圖的界面,顯示的是各項(xiàng)操作的命令,根據(jù)相關(guān)命令可以執(zhí)行相關(guān)的操作 功能1:顯示系統(tǒng)時(shí)間功能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)時(shí)退出系統(tǒng)。七、設(shè)計(jì)總結(jié)7.1系統(tǒng)特色本系統(tǒng)基本實(shí)現(xiàn)命令訪問接口的設(shè)計(jì),能正常解釋命令并執(zhí)行,在命令的解釋和執(zhí)行直接采用DOS系統(tǒng)的中斷調(diào)用以及功能類型號碼的選擇和設(shè)置,能夠符合操作系統(tǒng)命令接口設(shè)計(jì)的要求。7.2實(shí)踐感受課程設(shè)計(jì)是理論知識和實(shí)際操作的一種結(jié)合,對所學(xué)的知識進(jìn)行強(qiáng)化。從確立課題到遇到問題查找資料,直到做出基本的結(jié)果,在這個(gè)過程中學(xué)到了之前所沒有接觸的知識點(diǎn)。例如在編程過程中要多使用庫函數(shù)中自帶的內(nèi)容,不必另外再去編寫已有的功能,這樣
13、不僅能節(jié)省時(shí)間,也能提高程序的可靠性。要多了解庫函數(shù),可以閱讀相應(yīng)的幫助文件來獲得有用的信息。遇到問題多與老師同學(xué)討論,可以幫助自己跳出定向思維。參考資料c程序設(shè)計(jì)(第三版)譚浩強(qiáng) 著 清華大學(xué)出版社80x86匯編語言程序設(shè)計(jì)沈美明,溫冬嬋著 清華大學(xué)出版社c與c+標(biāo)準(zhǔn)類庫及函數(shù).chmWindows API for 2000/XP實(shí)例精解 王強(qiáng) 周明 李定國 等編著 電子工業(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; /讀取時(shí)間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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026屆北京市東城區(qū)第五中學(xué)高一數(shù)學(xué)第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測模擬試題含解析
- 內(nèi)保安全培訓(xùn)課件
- 生產(chǎn)易損易耗物資管理制度(3篇)
- 考古保安服務(wù)管理制度(3篇)
- 課后服務(wù)活動管理制度細(xì)則(3篇)
- 鋼筋吊裝施工方案(3篇)
- 餐飲宿舍管理制度細(xì)則表格(3篇)
- 《GA 1308-2016 10式38毫米警用子母式發(fā)煙型訓(xùn)練彈》專題研究報(bào)告
- 獸醫(yī)科普講課
- 中學(xué)教學(xué)質(zhì)量分析與改進(jìn)制度
- 2024年風(fēng)電、光伏項(xiàng)目前期及建設(shè)手續(xù)辦理流程匯編
- 不良資產(chǎn)合作戰(zhàn)略框架協(xié)議文本
- 2025年鹽城中考?xì)v史試卷及答案
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫完整參考答案詳解
- 2025年鄭州工業(yè)應(yīng)用技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬試卷
- 測繪資料檔案匯交制度
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫及完整答案詳解
- 2025年六年級上冊道德與法治期末測試卷附答案(完整版)
- 先進(jìn)班級介紹
- 附件二;吊斗安全計(jì)算書2.16
- 學(xué)校食堂改造工程施工組織設(shè)計(jì)方案
評論
0/150
提交評論