您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 汇编课程设计--文件复制拷贝程序
长春大学课程设计纸共7页第1页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊目录1、总体设计........................................................21.1设计题目...................................................21.2设计目的...................................................22、解决方案........................................................32.1设计内容...................................................22.2设计说明...................................................23、系统实现........................................................23.1开发环境...................................................23.2流程图.....................................................23.3程序清单...................................................23.4功能显示输出结果...........................................53.5结果分析...................................................54、结论............................................................65、参考文献........................................................6长春大学课程设计纸共7页第2页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊1总体设计1.1设计题目《文件复制拷贝程序》1.2设计目的⑴通过此次的课程设计,对已学过的汇编语言程序设计知识进行综合运用,掌握并深入理解汇编语言程序设计的方法。⑵熟悉汇编语言提供的基本指令并熟练掌握其指令的使用方法及各指令使用时应注意的事项。⑶熟悉磁盘文件管理的相关知识,了解DOS各磁盘文件管理功能的作用,掌握常用磁盘文件管理功能的使用方法。⑷了解中断的基本概念,并能区分内部中断和外部中断,并熟悉和掌握DOS功能调用的使用方法。⑸学会使用DEBUG调试汇编源程序,掌握调试的全过程。2解决方案2.1设计内容设计一个可以拷贝任何源文件的拷贝程序,并可以有用户确定目的文件的位置,利用汇编语言实现。通过人机对话获得源文件和目标文件的路径名(可以带文件路径);当拷贝不成功时,给出适当的出错信息。2.2设计说明程序采用汇编语言实现。首先定义一个缓冲区BUFFER,再定义数据段,在数据段中定义相关的提示信息,如错误提示等。在程序段中,使用DOS功能调用,调用0AH号功能从键盘输入上读一个字符串,该串字符串中包含源文件的名字及路径,看能否打开源文件;打开之后,再调用0AH号功能输入一个字符串,该串字符串中包含创建目标文件的名字及路径,目标文件创建之后;使用DOS磁盘文件管理功能,调用3D00H号功能打开源文件,读取数据到缓冲区;接着,调用40H号功能打开目标文件,将缓冲区的数据写入到目标文件中,然后判断是否到读到源文件的末尾,是就结束拷贝,否就再继续从源文件中读取数据,再写入到目标文件中。3系统实现3.1开发环境程序应用MASM5.0进行编译。用MASM命令生成obj文件,在用LINK命令生成可执行的.exe文件。3.2流程图见第7页图3-13.3程序清单BUFFLEN=50DSEGSEGMENTINFOR1DB'Pleaseinputthepathandthegoalfile(*:\*.*):$'INFOR2DB'Pleaseinputthepathandthesourcefile(*:\*.*):$'INFOR3DB'Copysuccess!$';操作命令提示ERROR1DB'Cannotopenthefile!Pleasemakesurewhetherthesourcefileisexit!',07H,'$'ERROR2DB'Cannotcreatthefile!',07H,'$'长春大学课程设计纸共7页第3页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ERROR3DB'Readingerror!',07H,'$'ERROR4DB'Writingerror!',07H,'$';错误命令提示HANDLE1DW0HANDLE2DW0BUFFERDBBUFFLENDB?DBBUFFLENDUP(0);定义一个缓存区DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXMOVDX,OFFSETINFOR2CALLDMESS;调用DMESS子程序MOVDX,OFFSETBUFFERMOVAH,0AH;输入字符串INT21HCALLNEWLINE;调用NEWLINE子程序LEASI,BUFFER;将BUFFER的有效地址传个SIMOVAL,[SI+1]XORAH,AH;AH清零ADDSI,2;调整指针ADDSI,AXMOVBYTEPTR[SI],0MOVDX,OFFSETBUFFER+2;将BUFFER+2的有效地址传给DXMOVAX,3D00HINT21HJNCOPENOK;进位标志被清转移到OPENOKMOVDX,OFFSETERROR1CALLDMESSJMPOVEROPENOK:MOVHANDLE1,AXMOVDX,OFFSETINFOR1CALLDMESSMOVDX,OFFSETBUFFERMOVAH,0AHINT21HCALLNEWLINELEASI,BUFFER;将BUFFER的有效地址传给SIMOVAL,[SI+1]XORAH,AHADDSI,2ADDSI,AXMOVBYTEPTR[SI],0长春大学课程设计纸共7页第4页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊MOVDX,OFFSETBUFFER+2MOVCX,0MOVAH,3CH;建立文件INT21HJNCCREAOKMOVBX,HANDLE1MOVAH,3EH;关闭文件INT21HMOVDX,OFFSETERROR2CALLDMESSJMPOVERCREAOK:MOVHANDLE2,AXCONT:MOVDX,OFFSETBUFFERMOVCX,BUFFLENMOVBX,HANDLE1MOVAH,3FH;读文件INT21HJCREADERRORAX,AX;进位标志CF清0JZCOPY_OKMOVCX,AXMOVBX,HANDLE2MOVAH,40H;写文件INT21HJCWRITERRJMPCONTREADERR:MOVSI,OFFSETERROR3CALLDMESSJMPCOPY_OKWRITERR:MOVSI,OFFSETERROR4CALLDMESSCOPY_OK:MOVBX,HANDLE1MOVAH,3EHINT21HMOVBX,HANDLE2MOVAH,3EH;关闭文件INT21HMOVDX,OFFSETINFOR3CALLDMESSOVER:MOVAH,4CHINT21H;函数NEWLINE实现在一串字符后输出一个回车换行:;功能:显示由DX所指的提示信息;入口参数:DS:DX=需要输出字符串的首地址,字符串以$为结束标志长春大学课程设计纸共7页第5页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊;出口参数:无DMESSPROCMOVAH,9;显示字符串INT21HRET;段内返回DMESSENDP;功能:形成回车和换行;出口参数:无;入口参数:无NEWLINEPROCPUSHAXPUSHDX;保护寄存器MOVDL,0DHMOVAH,2;显示输出INT21HMOVDL,0AHMOVAH,2INT21HPOPDXPOPAXRETNEWLINEENDPCSEGENDSENDSTART;程序结束3.4功能显示输出结果⑴显示输入源文件:Pleaseinputthepathandthegoalfile(*:\*.*)⑵若源文件不存在显示:Cannotopenthefile!Pleasemakesurewhetherthesourcefileisexit⑶输入目的文件:Pleaseinputthepathandthesourcefile(*:\*.*)⑷显示无法创建文件:Cannotcreatthefile!⑸显示无法读取文件:Readingerror!⑹显示无法写文件:Writingerror!⑺显示创建成功:Copysuccess!3.5结果分析图3-2运行程序前的文件夹a和文件夹b的情况长春大学课程设计纸共7页第6页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊图3-3进行文件拷贝操作图3-4程序运行后文件夹b的情况4结论此程序应用了DOS功能的调用,其中包括2号功能、9号功能、0AH号功能。以及应用了DOS磁盘文件管理功能调用,如3DH号功能、3FH号功能、40H号功能等。充分利用子程序,使得程序可读性更强。执行程序时,通过不同的提示语句提示用户操作。不组足之处,本程序只能拷贝单个文件,不能够循环执行,而且源文件必须存在,并且需要指定目标文件的目录,否则无法进行文件拷贝。这些以后需要改进。5参考文献[1]《80x86的结构与汇编语言程序设计》,周明德,清华大学出版社,1993年12月[2]《80x86汇编语言程序设计教程》,杨季文,清华大学出版社,1998年6月[3]《8088/8086汇编语言程序设计》,杨振生,中国科学技术大学出版社,1994年1月长春大学课程设计纸共7页第7页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊YNNYNYNNY图3-1开始打开指定文件创建成功?Y创建指定目标文件打开成功?存储目标文件的文件柄读取成功?文件结束?关闭文件结束将缓冲区的字符串写到目标文件写成功?显示文件无法打开显示文件无法创建显示读取文件错误复制成功显示写文件错误
本文标题:汇编课程设计--文件复制拷贝程序
链接地址:https://www.777doc.com/doc-5199626 .html