




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用汇编语言编辑文件管理器1、课程设计目的了解微机基础知识,寻址方式,80868088指令系统,80x86、Pentium增强和扩展指令,程序设计方法,高级汇编技术,系统功能调用和模块化程序设计的技术以及上机操作方法。掌握汇编语言的中断调用功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制等。掌握汇编语言程序格式、循环与分支程序设计、子程序设计、宏汇编。掌握模块化程序设计。掌握屏幕输出显示的设计方法。培养动手能力。在我们的生活当中,经常回用到各种各样的文件,会对文件进行各种各样的操作,当然WINDOWS XP包含的文件管理器能实现对文件进行各种操作。以前VB的课程设计,我曾经
2、做过一个小型的文本管理器,对文件管理器的数据结构比较熟悉,所以此次用汇编语言再次做一个文件管理器的小程序。设计的文件管理器,主要实现的功能有创建文件、读文件、写入文件、删除文件、文件的重命名、移动文件和复制文件。2.设计方案论证2.1开发环境目前常用的汇编软件有MASM.EXE和TASM.EXE,两者功能相差不多,但是关键在库上面TASM不是很方便,TASM无法处理大量的预定义。MASM是Microsoft公司推出的汇编编译器,适合初学者使用。(1)硬件:IBM-PC及其系列机 (2)软件:编缉程序:TE编缉程序 内存1G 汇编程序:MASM.EXE 外存:120G硬盘 连接程序:LINK.E
3、XE CPU:奔腾4 调试程序:DEBUG.EXE用MASM来开发程序的步骤为: (1)用TE编辑源程序,输入源程序清单。 (2)利用宏汇编程序MASM对源程序进行汇编。 (3)用连接程序LINK对汇编后生成的OBJ文件进行连接,生成EXE文件。 (4)用DEBUG分布执行程序来检查错误。 (5)在DOS下执行EXE文件。2.2总体设计功能 (1)执行EXE文件后,屏幕上出现了几行提示字符,选择要执行的功能。 (2)选择1后,执行创建文件的功能,此时屏幕提示输入文件的存储路径以及文件名和文件的扩展名,创建成功后,屏幕提示SUCCESS,回主菜单。 (3)选择2后,屏幕提示输入要读的文件的文件名
4、以及其目录,正确输入后,屏幕出现读文件的提示和文件的内容,回到主菜单。 (4)选择3后,屏幕提示先输入要写入文件的文件名及路径,然后提示输入要写入文件的内容,成功后返回主菜单。 (5)选择4后,屏幕提示输入要删除的文件的路径以及文件名,成功后屏幕提示文件已经删除,然后回到主菜单。 (6)选择5后,屏幕提示输入文件的路径以及文件名,然后输入文件的新名字以及扩展名,然后回到主菜单。 (7)选择6后,屏幕提示输入要移动文件的路径以及文件名,然后输入文件的目的地址的路径以及文件名,然后回到主菜单。 (8)选择7后,屏幕提示输入要复制文件的路径以及文件名,然后输入文件的目的地址的路径以及文件名,然后回到
5、主菜单。 (9)选择8后,退出程序。2.3详细设计功能2.3.1主程序功能 主程序功能是显示功能菜单以及选择程序的功能。通过对程序的运行,按步骤选择功能序号,实现对功能的操作。设计中需要按步骤去操作程序,通过主程序的操作,实现子程序的功能。主程序功能流程图如图1。开始选择程序功能18创建文件读文件写文件删除文件文件重命名移动文件复制文件选择功能17 退出否是图1主程序功能流程图2.3.2 CREATE子程序功能完成创建文件的操作,子程序DELETE完成的是删除文件的操作。按照操作步骤,实现对文件的创建和删除的功能,需要仔细的进行功能实现删除和创建。下面是创建文件的流程图,如图2所示:开始显示菜
6、单输入文件名创建文件创建成功回主菜单失败提示成功提示是否选择1图2子程序CREATE完成创建文件流程图2.3.3 READ子程序功能完成读文件的功能,子程序WRITE完成向文件中写内容的功能。通过子程序的操作实现对文件的阅读,通过对文件的读出,对文件进行阅读。下面是WRITE的流程图,如图3所示:开始显示菜单调用INSERT,输入文件名字查找文件查找成功回主菜单写入失败取出原有字符是否调用CUOWU子程序写入新字符选择3图3子程序READ完成读文件流程图(4)子程序MOVE实现文件的移动功能,子程序COPY实现文件的复制功能,下面是COPY的流程图,如图4所示:开始显示菜单调用INSERT,输
7、入文件名字查找文件查找成功回主菜单复制失败打开文件是否调用CUOWU子程序调用INSERT2子程序选择7读文件图4子程序MOVE实现文件的移动流程图3. 设计结果与分析3.1调试程序 用DEBUG命令来调试程序。DEBUG提供了丰富的命令,如单步执行和设置断点等,来跟踪检查程序。当程序全部执行得不到正确结果时,可先执行其中的一部分,检查这一部分的执行结果是否正确。如果这一部分的结果正确,则可以肯定这一部分没有问题,接下去去调试另一部分;如果这部分结果不正确,则可肯定该部分有问题,就调试这部分。采用将一部分分成两小部分的办法继续查找错误所在,直至将错误找到。1.设置断点用DEBUG调试程序,用-
8、G命令来设置断点,程序从0060运行到006F,让AX=0600,如图5所示:图5断点显示结果第二个断点,程序从0080-008F,让AX=0A0A,如图6所示:图6断点显示结果3.2运行程序 运行EXE文件,出现如下界面,见图7:图7运行EXE文件图建立一个名为11.TXT的文件,界面如图8:图8 11.EXE的运行界面向11.TXT文件中写入内容“congyunye”,界面如图9:图9运行结果重命名文件11.TXT为20.TXT,界面如图10:图10重命名结果图复制文件20.TXT到E盘根目录下,命名为30.TXT,界面如图11:图11运行结果图 4.总结通过一周的课程设计,使我加深了对汇
9、编语言知识的掌握,能够熟练的运用MASM软件对程序进行汇编,连接,编译和调试,以及设置断点。对于分支结构,子程序的设计,多次循环语句的设置也有了一定的掌握。还掌握了一些子程序设计时常用的指令,如CALL,RET等。对于子程序的设计时的现场的保护和恢复,子程序的嵌套,参数间的传递都有了一定的了解。通过对文件的创建,读文件,写文件,和对文件的重命名,以及对文件的删除和修改,完成一系列的操作。但是在运行的时候还是出现了一些问题,我不知道应该从何入手,不知道什么情况下会出现断点,然而在看过书以后,我知道了,先用U命令显示代码,然后再用G命令设置断点,当出现INT的时候,就表示有断点。 5.参考文献1齐
10、志儒,高福祥.汇编语言程序设计M.第2版.沈阳:东北大学出版社, 2001.1:123-1672朱玉龙,任文岚等.汇编语言程序设计M.北京:清华大学出版社, 2003.8: 246-278 3徐建民,王东等.汇编语言程序设计M.第2版.北京:电子工业出版社,2005.2:90-1234 王爽.汇编语言M.第2版.北京:清华大学出版社,2004.9:168-1785 刘兵,易逵,朱天清. 微型计算机通信与接口技术M. 北京: 中国水利水电出版社,2005.6:29-36 6.附录DSEG SEGMENTWENJIANMING DB 20,?,20 DUP(?)FILE DB 20,?,20 DU
11、P(?) ;为改名新建文件BUF1 DW 128 DUP($) ;从文件取的字符 BUF2 DB 128,?,128 DUP(?) ;写入文件的字符BUF3 DW 128 DUP(?)MENU1 DB 0DH,0AH,1.Create WENJIAN,0DH,0AHMENU2 DB 0DH,0AH,2.READ WENJIAN,0DH,0AHMENU3 DB 0DH,0AH,3.WRITE WENJIAN,0DH,0AHMENU4 DB 0DH,0AH,4.Delete WENJIAN,0DH,0AHMENU5 DB 0DH,0AH,5.CHANGE WENJIANMING,0DH,0AHME
12、NU6 DB 0DH,0AH,6.MOVE WENJIAN,0DH,0AHMENU7 DB 0DH,0AH,7.COPY WENJIAN,0DH,0AHMENU8 DB 0DH,0AH,8.EXIT,0DH,0AHMENU9 DB 0DH,0AH,ENTER THE NUMBER(1-8):$,0DH,0AH TISHI1 DB 0DH,0AH,INSERT WENJIANMING(*:*.txt):$,0DH,0AHTISHI2 DB 0DH,0AH,READ WENJIAN:,0DH,0AHTISHI3 DB 0DH,0AH,INSERT THE NEW WENJIANMING YOU W
13、ANT TO CHANGE(*:*.txt):$,0DH,0AHTISHI4 DB 0DH,0AH,OK!THE WENJIAN HAS BEEN DeleteD!$,0DH,0AHTISHI5 DB 0DH,0AH,INSERT TISHISAGE:$,0DH,0AHTISHI6 DB 0DH,0AH,INSERT THE TARGET PATH AND NAME(*:*.txt):$, 0DH,0AHTISHI7 DB 0DH,0AH,THE WENJIAN IS NOT EXIST!PLEASE Create IT FIRST!$,0DH,0AHTISHI9 DB 0DH,0AH,INS
14、ERT THE SOURCE WENJIANMING:(*:*.txt):$, 0DH,0AHTISHI8 DB 0DH,0AH,INSERT THE SOURCE PATH AND NAME:(*:*.txt): $,0DH,0AHERR DB 0DH,0AH,ERROR$OK DB 0DH,0AH,SUCCESS,0DH,0AH,$DSEG ENDSCSEG SEGMENT ASSUME CS:CSEG,DS:DSEGSTART:MOV AX,DSEG MOV DS,AXAGAIN:MOV AH,9 MOV DX,OFFSET MENU1 ;显示菜单 INT 21H MOV AH,1 ;键
15、入字符 INT 21HK1: CMP AL,31H JNZ K2 CALL CREATE ;创建文件JMP AGAINK2: CMP AL,32H JNZ K3 CALL READ ;读文件 JMP AGAINK3: CMP AL,33H JNZ K4 CALL WRITE ;写文件JMP AGAINK4: CMP AL,34H JNZ K5 CALL DELETE ;删除文件 JMP AGAINK5: CMP AL,35HJNZ K6 CALL CHANGE ;改文件名 JMP AGAINK6: CMP AL,36H JNZ K7 CALL MOVE ;移动文件 JMP AGAINK7: C
16、MP AL,37H JNZ K8 CALL COPY ;复制文件 JMP AGAINK8: CMP AL,38H JNZ AGAIN MOV AH,4CH INT 21HCREATE PROC NEAR ;建立文件子程序 MOV DX,OFFSET TISHI1 ;显示提示MOV AH,9 INT 21H CALL INSERT ;调用输入名字子程序 MOV DX,OFFSET WENJIANMING ;建立文件ADD DX,2 MOV AH,3CH MOV CX,0 INT 21H JC ERRTISHI ;是否成功 LEA DX,OK MOV AH,9 INT 21H JMP RE1ERR
17、TISHI:MOV DX,OFFSET ERR MOV AH,9 INT 21HRE1: RET CREATE ENDPREAD PROC NEAR ;读文件子程序 LEA DX,TISHI9 ;设提示,先输入欲操作的文件名 MOV AH,9 INT 21H CALL INSERT ;调用输入名字子程序 MOV DX,OFFSET WENJIANMING ADD DX,2 MOV AH,3DH MOV AL,0 INT 21H JC FAULT ;转到文件出错信息MOV BX,AX LEA DX,BUF1 MOV CX,200 ;读字符个数MOV AH,3FHINT 21H ;先读文件 MOV
18、 AH,3EH INT 21H LEA DX,TISHI2 MOV AH,9 INT 21H LEA DX,BUF1 INT 21H ;显示文件内容 JMP RE2FAULT: CALL CUOWU ;调用出错子程序RE2: RET READ ENDPWRITE PROC NEAR ;写文件子程序 LEA DX,TISHI9 MOV AH,9 INT 21H CALL INSERT ;调用输入名字子程序 MOV DX,OFFSET WENJIANMING ADD DX,2 MOV AH,3DH MOV AL,1 INT 21H ;打开文件 JC FAULT2 ;无此文件则跳转 MOV BX,A
19、X MOV DX,OFFSET TISHI5 MOV AH,9 INT 21HMOV DX,OFFSET BUF2 ;输入字符MOV AH,0AH INT 21H LEA SI,BUF2 MOV AL,SI+1 MOV AH,0 ;先取出实际写入字符数 MOV DX,OFFSET BUF2 ADD DX,2 MOV CX,AX ;写入的字符数 MOV AH,40H INT 21H ;写文件 MOV AH,3EH INT 21H MOV DX,OFFSET OK ;显示成功信息 MOV AH,9 INT 21H JMP RE3FAULT2:CALL CUOWU ;调用出错子程序RE3: RET
20、WRITE ENDPDELETE PROC NEAR ;删除子程序 LEA DX,TISHI9 MOV AH,9 INT 21H CALL INSERT ;调用输入名字子程序MOV DX,OFFSET WENJIANMING ;删除文件 ADD DX,2 MOV AH,41HINT 21HJNC INFO CALL CUOWU ;失败信息 JMP RE4 ;转向RETINFO: MOV DX,OFFSET TISHI4 ;删除成功提示信息 MOV AH,9 INT 21HRE4: RET DELETE ENDPCHANGE PROC NEAR ;改名子程序 LEA DX,TISHI9 MOV
21、AH,9 INT 21H CALL INSERT ;调用输入名字子程序 MOV DX,OFFSET WENJIANMING ADD DX,2 MOV AH,3DH MOV AL,0 INT 21H ;打开文件 JC FAULT3 MOV BX,AX LEA DX,BUF3 MOV CX,100 MOV AH,3FH INT 21H ;先读文件 MOV AH,3EH INT 21H MOV DX,OFFSET TISHI3 MOV AH,9INT 21H CALL INSERT2 ;调用输入新文件子程序 MOV DX,OFFSET WENJIANMING ;删除文件 ADD DX,2 MOV AH,41H INT 21HJMP RE5FAULT3:CALL CUOWU ;调用出错子程序RE5: RETCHANGE ENDPMOVE PROC NEAR ;移动文件子程序LEA DX,TISHI8 MOV AH,9 INT 21H CALL INSERT ;调用输入名字子程序 MOV DX,OFFSET WENJIANMING ADD DX,2 MOV AH,3DH MOV AL,0 INT 21H ;打开文件 JC FAULT4 MOV BX,AX LEA DX,BUF3 MOV CX,100 MOV AH,3FH INT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中职数学课件第七版
- 网络计划技术的原理与应用
- 专题04 读后续写精彩结尾及主题升华仿写(讲义)原卷版-2025年高考英语二轮复习
- 数字化教育技术推动商业创新的驱动力
- 重庆七中2025届物理高一下期末调研试题含解析
- 全球化背景下的教育政策改革研究报告
- 教育机器人助力远程办公和在线教学
- 商业培训的在线教育平台界面人性化设计
- 智能教室技术点亮教育未来的明灯
- 教育机器人的发展对未来办公的启示
- 2025年自来水笔试题及答案
- 广东省深圳市福田区耀华实验学校2025年六年级下学期5月模拟预测数学试题含解析
- 柴油运输协议书年
- 2025年安徽中医药高等专科学校单招职业适应性测试题库有答案
- 成绩单申请书
- 接警调度培训课件
- 手术室的安全核查
- 高校人事档案数字化建设实践调研
- 学生行为习惯养成教育实施方案范例
- 收购公司股权项目可行性研究报告(完整版)
- 《农民工参与民族地区新农村建设的模式研究》
评论
0/150
提交评论