汇编语言课程设计磁盘文件管理.docx

上传人:b****6 文档编号:4732560 上传时间:2022-12-08 格式:DOCX 页数:17 大小:172.70KB
下载 相关 举报
汇编语言课程设计磁盘文件管理.docx_第1页
第1页 / 共17页
汇编语言课程设计磁盘文件管理.docx_第2页
第2页 / 共17页
汇编语言课程设计磁盘文件管理.docx_第3页
第3页 / 共17页
汇编语言课程设计磁盘文件管理.docx_第4页
第4页 / 共17页
汇编语言课程设计磁盘文件管理.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

汇编语言课程设计磁盘文件管理.docx

《汇编语言课程设计磁盘文件管理.docx》由会员分享,可在线阅读,更多相关《汇编语言课程设计磁盘文件管理.docx(17页珍藏版)》请在冰豆网上搜索。

汇编语言课程设计磁盘文件管理.docx

汇编语言课程设计磁盘文件管理

 

汇编语言课程设计报告

(2010--2011年度第2学期)

磁盘文件管理系统

专业

网络工程

学生姓名

赵燕

班级

B计算机092

学号

0910704228

指导教师

王志宏

完成日期

2011年6月22日

目录

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开发环境

Tasm

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].清华大学出版社

附录

附录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?

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

movah,9

leadx,menu

int21h

meendp

choiceprocnear

movah,1

int21h

cmpal,31h

jenext1

cmpal,32h

jenext2

cmpal,33h

jenext3

cmpal,34h

jenext4

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

leadx,pathname

movcx,0

int21h

jcerror1

movhandle,ax

jmpexit

error1:

movah,9

leadx,str_error1

int21h

jmpexit1

exit:

movah,9

leadx,str_ok1

int21h

exit1:

callchoice

creathendp

entryprocnear

movah,9

leadx,entery

int21h

leadx,buffer1

movah,0ah

int21h

subch,ch

movcl,buffer1+1

adddx,2

callwrith

ret

entryendp

writhprocnear

movah,3dh

leadx,pathname

moval,1

int21h

jcerror2

movhandle,ax

movah,40h

leadx,buffer1+2

movbx,handle

movcx,60

int21h

jcerror3

movah,3eh

movbx,handle

int21h

jcerror4

jmpback1

error2:

movah,9

leadx,str_error2

int21h

jmpexit2

error3:

movah,9

leadx,str_error2

int21h

jmpexit2

error4:

movah,9

leadx,str_error4

int21h

jmpexit2

back1:

movah,9

leadx,str_ok2

int21h

exit2:

callchoice

writhendp

readprocnear

movah,3dh

leadx,pathname

moval,0

int21h

jcerror5

movhandle,ax

movah,3fh

leadx,buffer2

movbx,handle

movcx,60

int21h

jcerror6

movah,9

leadx,buffer2

int21h

jcerror6

movah,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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1