汇编语言课程设计磁盘文件管理.docx
- 文档编号:15077272
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:20
- 大小:172.85KB
汇编语言课程设计磁盘文件管理.docx
《汇编语言课程设计磁盘文件管理.docx》由会员分享,可在线阅读,更多相关《汇编语言课程设计磁盘文件管理.docx(20页珍藏版)》请在冰点文库上搜索。
汇编语言课程设计磁盘文件管理
电子信息工程系
课程设计报告书
课程名称:
微机原理及应用课程设计
磁盘文件管理系统
目录
1概述1
1.1课程设计目的1
1.2课程设计内容1
2系统需求分析1
2.1系统目标1
2.2主体功能1
2.3开发环境1
3系统概要设计1
3.1系统的功能模块划分1
3.2系统流程图1
4系统详细设计2
5测试4
5.1测试方案4
5.2测试结果5
6小结6
参考文献7
附录7
附录1源程序清单8
磁盘文件管理系统
1概述
1.1课程设计目的
在学完教学大纲规定的全部内容,完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言课程设计方法,提高分析问题,解决问题的综合应用能力。
学会查阅和汇编语言相关的规范,手册等技术资料。
能正确绘制和使用流程图。
掌握汇编语言程序设计和程序调试的基本技能,能进行基本的软件设计。
此课程设计中,通过对磁盘管理分段程序的设计,来实现键盘的输入,输出文件的读写的功能。
熟悉常用的系统功能调用和常用的算法实现。
如01H功能调用实现键盘输入并回显,09H的功能调用显示字符串,3CH的功能调用是建立文件,3DH的功能调用是打开文件,3EH的功能调用是关闭文件3FH是读取文件,40H功能调用是写入文件。
掌握基本子程序的调用和返回指令。
1.2课程设计内容
磁盘文件管理系统
2系统需求分析
2.1系统目标
功能菜单的编制;在磁盘中创建文件;向磁盘文件中写入信息;从磁盘文件中读出信息并显示;退出程序
2.2主体功能
创建文件,向磁盘文件中写入信息,从磁盘文件中读出信息并显示,退出程序。
如果向磁盘中写入信息或者从磁盘中读取信息失败屏幕会显示打开文件错误的提示。
根据提示输入字符,如果输错可以返回并且从新输入。
2.3开发环境
Masm
3系统概要设计
3.1系统的功能模块划分
1功能菜单的显示。
利用9H功能调用显示menu
movah,9
leadx,menu
int21h
2创建文件。
利用功能调用3CH建立文件。
DX=文件路径,CX=属性
3向磁盘文件中写入信息。
先利用功能调用3DH打开文件,再将从键盘输入的字符存入缓冲区,再从缓冲区写入文件,关闭文件。
4从磁盘文件中读出信息并显示。
先打开文件,在将文件内容存入缓冲区,再将缓冲区内容输出,关闭文件。
5退出程序。
3.2系统流程图
N
Y
Y
N
Y
N
N
N
Y
创建文件
N
Y
写入信息
N
Y
读取信息
N
Y
4系统详细设计
调用Dos21H功能实现文件操作
3CH:
创建文件DS:
DX=文件路径,CX=属性,返回文件号
3DH:
打开文件DS:
DX=文件路径,AL=模式
3EH:
关闭文件BX=文件号
3FH:
读取文件BX=文件号CX=字符数DS:
DX=缓冲区成功:
CF=0,失败:
CF=1,AX=错误码
40H:
写文件或设备BX=文件号DS:
DX=代写的数据地址CX=代写的字节数
在主程序中通过call指令调用子程序,在子程序中通过RET指令返回主函数。
缓冲区定义
buffer1db60,0,60dup(?
)
buffer2db60,0,60dup(?
)
提示信息定义
chosedb0dh,0ah,'Pleaseenterthedigitalfrom1-4!
',0dh,0ah,'$'
enterydb0dh,0ah,'Enterwhatyouwanttowritetothefile!
(Thelengthofthestringsisunder60)',0dh,0ah,'$'
str_ok1db,0dh,0ah,'Createfilesuccessfully!
',0dh,0ah,'$'
str_ok2db,0dh,0ah,'Writetofilesuccessfully!
',0dh,0ah,'$'
str_ok3db,0dh,0ah,'Readfromfilesuccessfully!
',0dh,0ah,'$'
str_ok4db,0dh,0ah,'Deletefilesuccessfully!
',0dh,0ah,'$'
str_error1db,0dh,0ah,'Createfileerror!
$'
str_error2db,0dh,0ah,'Openfileerror!
$'
str_error3db,0dh,0ah,'Writetofileerror!
$'
str_error4db,0dh,0ah,'Readfileerror!
$'
str_error5db,0dh,0ah,'Exitfromfileerror!
$'
5测试
5.1测试方案
输入字符1—4
1是创建文件,2是向磁盘文件中写入信息,3是从磁盘中读取信息,4是退出程序
5.2测试结果
运行程序后屏幕会出现菜单
1输入1创建文件
如果创建成功屏幕会显示createfilesuccessfully!
在D:
\IBMPC.TXT会创建名为IBMPC的TXT文本文件
如果创建失败屏幕会显示createfileerror!
2输入2向磁盘中写入信息
输入字符2屏幕会显示
输入字符sjaklwildacz在创建的文件中会显示
如果成功屏幕会显示writetofilesuccessfully!
如果失败屏幕会显示writetofileerror!
3输入3从磁盘文件中读出信息
如果读出信息成功,屏幕会显示readfromfilesuccessfully!
如果读出信息失败,屏幕会显示readfileerror!
4输入4退出程序
5输入其他字符,屏幕会提示pleaseenterthedigitalfrom1—4!
6如果没有先创建文件,就执行写入信息,读取信息的操作就会提示openfileerror!
6小结
这学期学习汇编语言这门课时,对它有了基本的了解和认识,觉得这门课并不难,反而很容易理解弄懂。
但本次课程设计使我充分了解到汇编语言在实际中的应用并不是那么容易。
在这次课程设计中让我认识到仅把课堂上的知识充分运用还是不够的。
程序设计不能仅仅停留在课本上,想要把程序做好,必须不断通过各种途径掌握更多更好的知识,最重要的是,要将获得的知识运用的实际编程中,要学以致用。
只有认真的去思考机器是如何进行逻辑思考才能更好的掌握理解它。
相信通过这次的课程设计,更让我深刻意识到自己在学习中的弱点,同时也找到了克服这些弱点的方法。
在以后的时间中,我应该利用更多的时间去上机实验,多编写程序,相信不久后我的编程能力会有很大的提高。
对于我学的这个专业来说,编写程序是最基本的,也是最重要的技能,然而本次课程设计的程序都不是自己编写的感觉到很遗憾,这次带着侥幸完成觉得很惭愧。
但我相信,在以后的学习和实践中,我一定会汲取这次课程设计的经验和教训,会把程序编写的更好。
参考文献
[1]花小朋,刘其明. 汇编语言程序设计教程[M].中国矿业大学出版社
[2]王元珍,曹忠升.80X86汇编语言程序设计[M].华中科技大学出版社
[3]沈美明,温冬婵.IBM-PC汇编语言程序设计[M].清华大学出版社
[4]王爽汇编语言[M].清华大学出版社
[5]朱定华.微机原理、汇编与接口技术(第二版).清华大学出版社
附录
附录1源程序清单
datasegment
menudb0dh,0ah,'****************************************',0dh,0ah
db'*menu*',0dh,0ah
db'*--------------------------------------*',0dh,0ah
db'*1.Createfile*',0dh,0ah
db'*2.Writetofile*',0dh,0ah
db'*3.Readfile*',0dh,0ah
db'*4.Quit*',0dh,0ah
db'*--------------------------------------*',0dh,0ah
db'*Choice(1--4)*',0dh,0ah
db'****************************************',0dh,0ah,'$'
pathnamedb'D:
\IBMPC.TXT',00;创建文件路径
handledw?
;handle用于存放选择的数
buffer1db60,0,60dup(?
);数据缓冲区
buffer2db60,0,60dup(?
)
huanhangdb'',0dh,0ah,'$';定义换行变量
chosedb0dh,0ah,'Pleaseenterthedigitalfrom1-4!
',0dh,0ah,'$'
;存放提示信息
enterydb0dh,0ah,'Enterwhatyouwanttowritetothefile!
(Thelengthofthestringsisunder60)',0dh,0ah,'$'
;存放提示信息
;以下都是提示信息
str_ok1db,0dh,0ah,'Createfilesuccessfully!
',0dh,0ah,'$'
str_ok2db,0dh,0ah,'Writetofilesuccessfully!
',0dh,0ah,'$'
str_ok3db,0dh,0ah,'Readfromfilesuccessfully!
',0dh,0ah,'$'
str_ok4db,0dh,0ah,'Deletefilesuccessfully!
',0dh,0ah,'$'
str_error1db,0dh,0ah,'Createfileerror!
$'
str_error2db,0dh,0ah,'Openfileerror!
$'
str_error3db,0dh,0ah,'Writetofileerror!
$'
str_error4db,0dh,0ah,'Readfileerror!
$'
str_error5db,0dh,0ah,'Exitfromfileerror!
$'
dataends
codesegment
assumecs:
code,ds:
data
mainprocfar
start:
movax,data
movds,ax
movax,0600h
callme
callchoice
ret
mainendp
meprocnear;me子程序功能,显示菜单
movah,9;9号功能调用
leadx,menu
int21h
meendp
choiceprocnear;choice子程序功能,从键盘中输入选择的数据
movah,1;1号功能调用,输入并显示一个字符
int21h
cmpal,31h;判断输入的数是否为1
jenext1;若为1,则跳到next1
cmpal,32h;判断输入的数是否为2
jenext2;若为2,则跳到next2
cmpal,33h;判断输入的数是否为3
jenext3;若为3,则跳到next3
cmpal,34h;判断输入的数是否为4
jenext4;若为4,则跳到next4
jmpback;否则,返回
next1:
callcreath;调用创建子程序
next2:
callentry;调用输入子程序
next3:
leadx,huanhang;换行
movah,9
int21h
callread;调用读子程序
next4:
movax,4c00h;退出程序
int21h
next5:
movah,3eh
movbx,handle
int21h
movah,41h
leadx,pathname
int21h
jcerror1
back3:
movah,9
leadx,str_ok4
int21h
back:
movah,9
leadx,chose
int21h
callme
ret
choiceendp
creathprocnear
movah,3ch;调用3CH功能,创建文件
leadx,pathname;设置创建文件的路径
movcx,0;设置文件属性
int21h
jcerror1;错误1
movhandle,ax;从键盘输入的数据付给handle
jmpexit;跳转到exit
error1:
movah,9
leadx,str_error1;创建文件失败,显示错误信息提示1
int21h
jmpexit1
exit:
movah,9;显示成功创建文件的提示信息
leadx,str_ok1
int21h
exit1:
callchoice;从新选择
creathendp
entryprocnear
movah,9
leadx,entery;显示输入的内容
int21h
leadx,buffer1
movah,0ah;10号功能调用,显示缓冲区字符串
int21h
subch,ch
movcl,buffer1+1
adddx,2
callwrith
ret
entryendp
writhprocnear;向文件写入内容
movah,3dh;3dh功能调用
leadx,pathname
moval,1;1号功能调用
int21h
jcerror2;写入信息失败,转到error2
movhandle,ax
movah,40h;40H功能调用写入文件。
leadx,buffer1+2;除去前面的空格
movbx,handle
movcx,60
int21h
jcerror3
movah,3eh;3EH的功能调关闭文件
movbx,handle
int21h
jcerror4
jmpback1
error2:
movah,9
leadx,str_error2;显示错误提示信息2
int21h
jmpexit2
error3:
movah,9
leadx,str_error3;显示错误提示信息3
int21h
jmpexit2
error4:
movah,9
leadx,str_error4;显示错误提示信息3
int21h
jmpexit2
back1:
movah,9
leadx,str_ok2;返回提示信息2
int21h
exit2:
callchoice
writhendp
readprocnear
movah,3dh;3DH的功能调用是打开文件
leadx,pathname
moval,0
int21h
jcerror5;打开失败,转到error5
movhandle,ax
movah,3fh;3FH是读取文件
leadx,buffer2
movbx,handle
movcx,60
int21h
jcerror6;跳到error6
movah,9;9号功能调用
leadx,buffer2
int21h
jcerror6;跳到error6
movah,3eh;3EH的功能调关闭文件
movbx,handle
int21h
jcerror7
jmpback2
error5:
movah,9
leadx,str_error2;;显示提示信息
int21h
jmpexit3
error6:
movah,9
leadx,str_error4;;显示提示信息
int21h
jmpexit3
error7:
movah,9
leadx,str_error5;;显示提示信息
int21h
jmpexit3
back2:
movah,9;显示提示信息
leadx,str_ok3
int21h
exit3:
callchoice
readendp
codeends
endstart
endmain
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 课程设计 磁盘 文件 管理