操作系统命令接口设计课程设计说明书_第1页
操作系统命令接口设计课程设计说明书_第2页
操作系统命令接口设计课程设计说明书_第3页
操作系统命令接口设计课程设计说明书_第4页
操作系统命令接口设计课程设计说明书_第5页
免费预览已结束,剩余15页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、件人耕冷技术学图课程设计说明书设计名称:操作系统课程设计题目:操作系统命令接口设计学生姓名:专业:班级:学号:指导教师:日期:2016年6月28日件4周学技求学部课程设计任务书网络工程专业年级班一、设计题目操作系统命令接口设计二、主要内容利用C语言、DO计断中21H与屏幕显示相关的中断调用完成设计,具体包括:1、命令解释器2、列目录命令3、显示时间命令4、显示日期命令5、回显字符串命令6、创建目录命令7、删除目录命令8、更改路径命令9、显示当前工作目录命令10、删除文件命令11、打印文本命令12、文件重新命名13、显示文本命令14、显示版本命令15、显示目录结构命令16、清除当前显示内容命令上

2、述内容中,所有命令通过命令解释器能够执行,即启动命令解释器以后,输入相应命令,按照输入指令执行相应功能,并在屏幕上显示相应结果。二、具体要求本设计的目的是通过设计一些简单的操作系统的命令接口,使学生掌握操作系统接口的设计方法。要求学生在熟悉操作系统的命令接口及程序接口的基础上,利用C语言设计简单的命令接口。命令接口基于DOS勺命令行接口。四、进度安排依照教学计划,课程设计时间为:2周。1 .要求讲解、资料查找、系统分析,概要设计(2天)2 .系统详细设计、功能设计(2天)3 .算法实现、编程调试(5天)4 .功能演示、资料整理、课程设计说明书编写。(1天)完成后应上交的材料课程设计说明书纸质文

3、档六、总评成绩指导教师签名日期一年一月日系主任审核日期年月日佛山科学技术学院课程设计用纸目录一、程序概述11.1 完成的任务11.2 解决的问题错误!未定义书签。二、概念原理12.1 基本概念12.2 基本原理1三、总体设计2四、详细设计34.1 主要调用DOS的功能号34.2 主要函数3五、完成情况3六、使用说明4七、设计总结77.1 系统特色77.2 实践感受4参考资料5附录(程序源代码)9佛山科学技术学院课程设计用纸一、程序概述1.1 完成的任务本设计是要求编写一个简单的命令解释器,利用C语言、DO计断中21H与屏幕显示相关的中断调用进行设计的,主要完成要求中所提到的功能如:可打开提示符

4、,并获取用户输入的指令、可解析指令、可寻找命令文件、可执行基本的命令。在本设计中,设计了一个dos命令提示行,主要完成的功能有:显示系统时间和日期,显示系统版本号,删除文件,创建目录,删除目录,重命名目录或文件名,回显字符串,打印文件,清屏等功能。1.2 解决的问题在设计过程中主要遇到了两个难题,一是如彳S理解和设计中断,对汇编和c语言的结合,如引入#include<dos.h>,#include<bios.h>二是如何使用中断函数如int86(),int86x(),intdos(),int等。里面主要的是结构体SREG源合体REGS以及汇编语言int21H系统调用中断

5、,以及调用功能号的查询和设置。二、概念原理2.1 基本概念中断当CPU(中央处理器)执行一条现行指令的时候,出现必须CPU/:即执行处理的情况,CPUW时停止当前程序的执行转而而执行新情况叫中断,此时如果外设向CPU发出中断请求,那么CPU在满足响应的情况下,将发出中断响应信号,与此同时关闭中断,表示CPU不在受理另外一个设备的中断。此次课程设计涉及有DOS中断和BIOS中断。命令接口处理器命令处理器是一个读入并解释你输入的命令的程序,它是介于使用者和操作系统之核心程序(kernel)间的一个接口。它是一个交互性命令解释器。命令处理器独立于操作系统,这种设计让用户可以灵活选择适合自己的命令处理

6、器。命令处理器让你在命令行键入命令,经过命令处理器解释后传送给操作系统(内核)执行。命令提示符“命令提示符”也就是Windows95/98下的“MS-DOS式”,虽然随着计算机产业的发展,Windows操作系统的应用越来越广泛,DOS面临着被淘汰的命运,但是因为它运行安全、稳定,有的用户还在使用,所以一般Windows的各种版本都与其兼容,用户可以在Windows系统下运行DOS中文版WindowsXP中的命令提示符进一步提高了与DOST操作命令的兼容性,用户可以在命令提示符直接输入中文调用文件。消息循环通过这个循环机制应用程序从消息队列中检索消息,再把它分派给适当的窗口,然后继续从消息队列中

7、检索下一条消息,再分派给适当的窗口,依次进行。系统调用系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。从逻辑上来说,系统调用可被看成是一个内核与用户空间程序交互的接口,它好比一个中间人,把用户进程的请求传达给内核,待内核把请求处理完毕后再将处理结果送回给用户空间。佛山科学技术学院课程设计用纸exit命令退2.2 基本原理首先进入一个消息循环,不断地接收消息,根据输入的命令进行解析,然后

8、执行命令,遇出。基本流程图:开始输入指令判断指令是否存在或者输入正确?dowhile循环,三、总体设计程序主要通过文件来存储帐户信息。进入提示符后,在消息循环中运用了一个佛山科学技术学院课程设计用纸switch,case将dos条用编写的函数组合起来供用户选择使用。连续的获取用户输入,直到用户输入0退出循环,结束程序。在处理文件或文件夹过程中,没有使用系统当前文件夹变量,只是在程序中单独设定了一个变量作为系统当前目录,每次获得的目录路径,如果是相对路径,则自动在前面加上当前目录路径。整个程序的设计流程,围绕着消息循环这一主线,根据消息判断调用不同的功能函数来完成相应的功能,主要使用了一些函数和

9、汇编调用DO或口和21号中断。四、详细设计4.1 、主要调用DOS勺功能号2AH读取日期2CH读取时间30H读取MS-DOS版本号39H创建目录41H删除文件3AH表示删除目录56H重命名文件3DH打开文件47H读取当前目录3FH读文件或目录4.2 、主要函数voidtime()通过定义该函数实现调用dos的2c号功能读取系统时间的功能voidday()通过定义该函数实现调用dos的2A功能读取系统日期的功能voiddos()通过定义该函数调用dos的30H功能读取系统的版本号功能voidDeleteFile(charfilename80)定义该函数用于删除文件或目录如果删除成功显示“succ

10、ess,删除失败表示找不到该文件voidCreatefile(charfilename80)定义该函数调用dos的39H号功能用于创建一个目录voidfile(charfilename180,charfilename280)定于该函数调用dos系统的56号功能用于重命名目录名和文件名的voidshowlist()定于该函数调用dos系统的47号功能读取当前的工作目录voidrewords()定于该函数用于调用dos的9号功能实现回显字符串功能voidReadFromFile(charfilename80)定于该函数用于调用dos的3F功能用于读取文件或目录的内容。clrscr();引用该函数实

11、现清除屏幕内容的功能。五、完成情况本程序完成了要求中的13项列目录,包括获取系统时间,获取系统日期,创建目录,删除目录,创建文件并写内容到文件中,打印文本,删除文件,更改目录或文件名,显示版本,清屏操作,获得当前的工佛山科学技术学院课程设计用纸作目录等13个要求六、使用说明运行程序首先回出现下图的界面,显示的是各项操作的命令,根据相关命令可以执行相关的操作QDO&Bok0.72CpuCycles:max,PranniB-skip,PregramsTC|=|Otl.1)ifnycuii'rreirtliulJ.EcJlukLfirMjhiyFLJtr11Xlear后心menPle

12、aseinputthenunber:1Nouthetimeis:q:4:47PIck寞inputsthemuhiihcr;ZHnuthrrlciyisPleilfrinpiit:thuTiiiHhrrEJLexit1.1)iu|i1ngxyrb1cmIifwxqbturnd<y3PDrbs-dusedition4.DeletefiLe5 Credtecom田nt6 .DlbteuDiitihlr7 .FIIciirfinnc:R.Dinpl'mirrrRfntint9 .EchnstririQIS.leadingrte11.Clea.i'screenPluiiKwinpu

13、tthisnnmbfir?功能1:显示系统时间功能2:系统日期:leaseinputthenumber:1qwthetimeis:9:26:17leaseinputthenumber;Zlouthedayis:ZQ16,714leaseinputthenumbe功能3:显示版本'leaseInputthenumber3rheBOSvePsinnofthismachineIszSiQ,16,9:G*leaseinputthenuHiber:功能4:删除文件:T1easeimputthenumber:4InputtlienameofExistingfiletode1etc;2txtDief

14、iIe:2.txthasbeendeletesuccessfully*Pl&aseInputtheniiHiber-:佛山科学技术学院课程设计用纸功能5:创建目录Pleaseinputtikenumber:5Inputcreatecontent:neuSUCCESS*Pleaseinputthemurrtber:_功能6:删除目录删除new文件夹:功能7:重命名目录或文件修改目录(重命名目录):将上面目录123修改为101修改文件(重命名文件):将文件名1.txt改为new1.txtP1easeinputthenumber:7name::1.txtnEiiiiname:neuil.tx

15、tsuccessTPleaseinputthenumber:佛山科学技术学院课程设计用纸OcbugDPMILOADJEXEMAKER.EX101NEWJLTXTDPIM1RES.EXENONAMEOOOBJEMSTEST.COMOBJXREF.COMBUILTINS.MAKICGREP-COOS.BAK功能8:显示当前工作目录Pleaseinputthenumber:6Thecurrentuorlcingdirectoryis:TC3GNB1NPleoseinputthenumber:功能9:回显字符串Pleaseinputthenumber:81Z3123PIgai5片inputthsnum

16、ber功能10:打印文件内容(读文件)已知new1.txt文件里面的内容如下,通过该系统读出文件的内容功能11:清除屏幕所有内容佛山科学技术学院课程设计用纸Pleaseinputthenumber:1HouthetineisPleaseinputtliemimberiZNoutliedayis:Z016,7,4Pleaseinputthemmher13TheDOSirsionofthismachineis:5jOjL&jGiQPlease:inputthemifnbur:4Inputthenameofexistingfiletodelete:0Thefile:6hasbeendelet

17、esuccessfu11y?Pleaseinputtlienumber;11清屏后:HfSDOSBoxCpuCycle55max,FrameskipQ.Program!TCs=iI1回S-exilL1 .D1143ysiysiLffrmIImc2 .D1l<iy生y与LirinclnylaDiyNkis-dtJiMiun4 HIle5 .Craterxnut石n*6 .De1etecontents7 fiFll&name8 .Dls|>laijiumrrr匕nl11st9 sEetiumtrfiiq10 .RecAtd1nyFlIt?11 .Cl&arscreen直

18、至输入指令为0(代表exit)时退出系统。七、设计总结7.1 系统特色本系统基本实现命令访问接口的设计,能正常解释命令并执行,在命令的解释和执行直接采用DOS系统的中断调用以及功能类型号码的选择和设置,能够符合操作系统命令接口设计的要求。7.2 实践感受课程设计是理论知识和实际操作的一种结合,对所学的知识进行强化。从确立课题到遇到问题查找资料,直到做出基本的结果,在这个过程中学到了之前所没有接触的知识点。例如在编程过程中要多使用库函数中自带的内容,不必另外再去编写已有的功能,这样不仅能节省时间,也能提高程序的可靠性。要多了解库函数,可以阅读相应的帮助文件来获得有用的信息。遇到问题多与老师同学讨

19、论,可以帮助自己跳出定向思维。佛山科学技术学院课程设计用纸参考资料«c程序设计(第三版)谭浩强著清华大学出版社«80x86汇编语言程序设计沈美明,温冬婵著清华大学出版社c与C+标准类库及函数.chm«WindowsAPIfor2000/XP实例精解王强周明李定国等编著电子工业出版社数据结构(c语言版)严蔚敏,吴伟民等编著清华大学出版社附录源代码(TorboC3.0环境下)#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<dos.h>#includ

20、e<bios.h>#defineINTER0x21voidmenu()printf("n");printf("0.exit'n");printf("1.Displaysystemtimen");printf("2.Displaysystemdayn");printf("3.DisplayMos-dosversion'n");printf("4.Deletefile'n");printf("5.Createcontentn"

21、;);printf("6.Deletecontents'n");printf("7.Filename'n");printf("8.Displaycurrentlist'n");printf("9.Echostring'n");printf("10.ReadingFile'n");printf("11.Clearscreen'n");printf("n");voidtime()unionREGSinregs,o

22、utregs;定义中断信息结构体structSREGSsegregs;inregs.h.ah=0x2C;读取时间int86x(INTER,&inregs,&outregs,&segregs);printf("Nowthetimeis:%d:%d:%dn",outregs.h.ch,outregs.h.cl,outregs.h.dh);getchar();voidday()unionREGSinregs,outregs;定义中断信息结构体structSREGSsegregs;inregs.h.ah=0x2a;/读取日期int86x(INTER,&

23、;inregs,&outregs,&segregs);printf("Nowthedayis:%d,%d,%dn",outregs.x.cx,outregs.h.dh,outregs.h.dl);getchar();voiddos()unionREGSinregs,outregs;/定义中断信息结构体佛山科学技术学院课程设计用纸structSREGSsegregs;inregs.h.ah=0x30;/DOS30号功能读取MS-DOS版本号int86x(INTER,&inregs,&outregs,&segregs);machinepr

24、intf("TheDOSversionofthisis:%d,%d,%d,%d:%dn",outregs.h.al,outregs.h.ah,outregs.h.bh,outregs.h.ah,outregs.x.cx);getchar();voidDeleteFile(charfilename80)intresult;unionREGSinregs,outregs;structSREGSsegregs;inregs.h.ah=0x41;/DOS中断号41是删除文件inregs.x.dx=FP_OFF(filename);segregs.ds=FP_SEG(filename

25、);int86x(INTER,&inregs,&outregs,&segregs);if(result=2|result=5)printf("nCan'tdeletethefile:%sThefilemaynotbeexist!n",filename);elseprintf("nThefile:%shasbeendeletesuccessfully!n",filename);voidCreatefile(charfilename80)unionREGSinregs,outregs;structSREGSsegregs;in

26、regs.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%sisnotexist!n",filename);printf("success!n");voidDeletefile(charfilename80)intresult;unionREGSinregs,outregs;10佛山

27、科学技术学院课程设计用纸structSREGSsegregs;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("nCan'tdeletethefile:%sThefilemaynotbeexist!n",filename);elseprintf(&quo

28、t;nThefile:%shasbeendeletesuccessfully!n",filename);voidfile(charfilename180,charfilename280)unionREGSinregs,outregs;structSREGSsegregs;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);int86x(IN

29、TER,&inregs,&outregs,&segregs);if(outregs.x.ax=02)printf("nFILE%sisnotexist!n",filename1);printf("success!n");voidshowlist()charlist80;unionREGSreg;structSREGSsegreg;reg.h.ah=0x47;/47H读取当前目录reg.h.dl=0;reg.x.si=FP_OFF(list);segreg.ds=FP_SEG(list);intdosx(&reg,&

30、reg,&segreg);printf("Thecurrentworkingdirectoryis:%sn",list);voidrewords()11佛山科学技术学院课程设计用纸(unionREGSreg,reg1;structSREGSsreg;charword200;for(inti=0;i<200;i+)wordi='$'scanf("%s",&word);reg1.x.dx=FP_OFF(word);sreg.ds=FP_SEG(word);reg1.h.ah=0x09;int86x(INTER,&

31、reg1,&reg1,&sreg);printf("n");voidReadFromFile(charfilename80)(unionREGSinregs,outregs;structSREGSsegregs;intresult;charReadContents9*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,&segreg

32、s);result=outregs.x.ax;if(2=result)(printf("nCan'treadcontentsfromfile:%s!Thefilemaynotbeexist.n",filename);else(inregs.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("nRealNumberofreadcharactersinfile:%s:%dn",filename,outregs);printf("nThecontentsoffile:%s!n",filename);for(inti=0;i<outregs.x.ax;i+)(printf("%c",ReadCon

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论