1、汇编语言课程设计 磁盘文件管理系统 报告汇编语言课程设计报告( 2011 - 2012 年度第 2 学期)磁盘文件管理系统专业计算机科学与技术学生姓名班级学号指导教师完成日期目 录目 录 21 概 述 11.1 课程设计目的 11.2 课程设计内容 12 系统需求分析 12.1 系统目标 12.2 主体功能 12.3 开发环境 13 系统概要设计 13.1 系统的功能模块划分 13.2 系统流程图 14系统详细设计 24.1功能控制模块设计 24.2创建文件模块设计 24.3文件写入模块设计 44.4 读文件模块设计 55 测试 55.1 测试方案 55.2 测试结果 56 小结 7附 录 8
2、附录1 源程序清单 8磁盘文件管理系统1 概 述1.1 课程设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。1.2 课程设计内容功能菜单的编制;向磁盘文件中写入信息;从磁盘文件中读出信息并显示。2 系统需求分析2.1 系统目标实现对磁盘文件的管理2.2 主体功能创建文件,向磁盘文件中写入信息,从磁盘文件中读出信息并显示,退出程序。如果向磁盘中写入信息或者从磁盘中读取信息失败屏幕会显示打开文件错误的提示。根据提示输入字符,如果输错可以返回并且从新输入。2.3
3、 开发环境TASM5.0集成环境。3 系统概要设计3.1 系统的功能模块划分1、功能菜单主界面。2、创建文件。3、写入文件。4、读取文件3.2 系统流程图图3-1系统流程图4系统详细设计4.1功能控制模块设计通过DOS 1功能调用接收用户输入的数据,如果用户输入1,则调用“文件创建模块”,创建文件。如果输入2,则调用“文件写入模块”,对文件写入。如果输入3,则调用“文件读取模块”,读取文件。如果输入4,则退出程序。如果输入其他字符,则再次调用“主界面模块”,提示符合的操作。4.2创建文件模块设计图4-14.3文件写入模块设计NY图4-24.4 读文件模块设计图4-35 测试5.1 测试方案将源
4、程序输入代码编辑器中,检查无误后在Turbo Debugger中运行。5.2 测试结果程序运行结果如图5-1所示:图5-1当输入1时,创建文件成功,如图5-2所示:图5-2当输入2时,向磁盘中写入信息zhanghui,如图5-3所示:图5-3当输入3时,从磁盘文件中读出文件成功,如图5-4所示:图5-4当输入4时,退出程序。当输入除1-4以外的其他字符,显示结果如图5-5所示:图5-56 小结一周的汇编语言课程设计结束了,我的收获很大。无论从学习上还是自身角度,我都自认得到了很大的提高。在课程设计过程中,发现许多在理论学习过程中所为发现的问题,同时,通过自己的努力,顺利地解决了这些问题。这是一
5、种磨砺。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。通过这次课程设计,我巩固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用DEBUG指令。在整个程序的编写中,调试占了很大部分的时间。要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程
6、序的水平。汇编也应该属于基础理论,我们正是沿着“理论实践应用”的学习之道正确的前进着,让我们在这个短语做为我们报告的结束语以再次提醒所有人诸如汇编语言的基础理论的重要性:理论实践应用正确的计算机学习之道!附 录附录1 源程序清单 data segmentmenu db 0dh,0ah, *,0dh,0ahdb * menu *,0dh,0ahdb *-*,0dh,0ahdb * 1.Create file *,0dh,0ahdb * 2.Write to file *,0dh,0ahdb * 3.Read file *,0dh,0ahdb * 4.Quit *,0dh,0ahdb *-*,0d
7、h,0ahdb * Choice(1-4) *,0dh,0ahdb *,0dh,0ah,$pathname db D:IBM PC.TXT,00handle dw ?buffer1 db 60,0,60 dup(?)buffer2 db 60,0,60 dup(?)huanhang db ,0dh,0ah,$chose db 0dh,0ah,Please enter the digital from 1-4!,0dh,0ah,$entery db 0dh,0ah,Enter what you want to write to the file!(The length of the string
8、s is under 60),0dh,0ah,$str_ok1 db 0dh,0ah,Create file successfully!,0dh,0ah,$str_ok2 db 0dh,0ah,Wtite to file successfully!,0dh,0ah,$str_ok3 db 0dh,0ah,Read from file successfully!,0dh,0ah,$str_error1 db Create file error!$str_error2 db Open file error!$str_error3 db Write to file error!$str_error4
9、 db Read file error!$str_error5 db Exit from file error!$data endscode segmentassume cs:code,ds:datamain proc farstart:mov ax,datamov ds,axmov ax,0600hcall mecall choiceretmain endpme proc nearmov ah,9lea dx,menuint 21hme endpchoice proc nearmov ah,1int 21hcmp al,31hje next1cmp al,32hje next2cmp al,
10、33hje next3cmp al,34hje next4jmp backnext1:call creathnext2:call entrynext3:mov ah,9lea dx,huanhangint 21hcall readnext4:mov ax,4c00hint 21hback:mov ah,9lea dx,choseint 21hcall meretchoice endpcreath proc nearmov ah,3chlea dx,pathnamemov cx,0int 21hjc error1mov handle,axjmp exiterror1:mov ah,9lea dx
11、,str_error1int 21hjmp exit1exit:mov ah,9lea dx,str_ok1int 21hexit1:call choicecreath endpentry proc nearmov ah,9lea dx,enteryint 21hlea dx,buffer1mov ah,0ahint 21hsub ch,chmov cl,buffer1+1add dx,2call writhretentry endpwrith proc nearmov ah,3dhlea dx,pathnamemov al,1int 21hjc error2mov handle,axmov
12、ah,40hlea dx,buffer1+2mov bx,handlemov cx,60int 21hjc error3mov ah,3ehmov bx,handleint 21hjc error4jmp back1error2:mov ah,9lea dx,str_error2int 21hjmp exit2error3:mov ah,9lea dx,str_error4int 21hjmp exit2error4:mov ah,9lea dx,str_error5int 21hjmp exit2back1:mov ah,9lea dx,str_ok2int 21hexit2:call ch
13、oicewrith endpread proc nearmov ah,3dhlea dx,pathnamemov al,0int 21hjc error5mov handle,axmov ah,3fhlea dx,buffer2mov bx,handlemov cx,60int 21hjc error6mov ah,9lea dx,buffer2int 21hjc error6mov ah,3ehmov bx,handleint 21hjc error7jmp back2error5:mov ah,9lea dx,str_error2int 21hjmp exit3error6:mov ah,9lea dx,str_error4int 21hjmp exit3error7:mov ah,9lea dx,str_error5int 21hjmp exit3back2:mov ah,9lea dx,str_ok3int 21hexit3:call choiceread endpcode endsend startend main