1、汇编课设程序报告录入学生身高体重等华 北 科 技 学 院课程设计说明书专 业: 网络工程 课程名称: 汇编语言 班级: 网络B093 姓 名: 李金栋 学号: 200907024324 设计题目: 个人文档管理 设计时间: 2011.12.5 至 2011.12.16 评 语:_ _评阅成绩: 评阅教师:李冬艳 课程设计报告的要求1、需求分析描述问题。简述课题要解决的问题是什么,有什么要求和限制条件。2、总体设计(程序设计组成框图、流程图)3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,过程调用关系描述等)4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采
2、取的解决措施5、测试结果,用几组测试数据进行测试算法设计的正确性。6、附录。源程序清单和结果:源程序要加注释。结果要包括测试数据和运行结果。汇编语言课程设计一 需求分析 建立一个输入个人信息、显示个人信息的程序、实现菜单化操作,子母i、l、q、对应插入信息、显示列表、退出程序的功能。程序开始时,先建立判断是否存在文件,如果不存在,就创立文件。然后随便输入i,l,q中任意一个字母(可以是大写),然后跳到相应的子程序,输入i时,跳到输入的子程序,输入相应的数据,保存到文件里。当输入l时,保存在文件里的数据就会显示,每个学生的信息显示一行。当输入q时,直接关闭文件,程序结束二 总体设计1 功能结构图
3、设计2 模块简介 依据程序的功能模块的划分,各模块定义如下: (1)输入个人信息模块名:insert;模块描述:通过此模块可以向某个人的信息。并且将学生信息写入指定的txt文件。添加有误则弹出相应信息提示,并实现再次输入此项目。(2)显示个人信息模块名:list_all; 模块描述:显示所有文件中存储的个人信息。 (3)打开创建文件模块名:open_create; 模块描述:没有指定的txt文件时创建文件、文件存在时打开文件,为写入数据做准备。(4)关闭文件模块名:closef; 模块描述:关闭文件。三 详细设计1、主过程的算法设计: 显示菜单及运用选择操作,调用各个过程,最后退出程序,主要代
4、码start: mov ax,condata mov es,ax mov ax,vardata mov ds,ax push ds;- 显示菜单- mov ax,es mov ds,ax mov dx,offset s4 ;显示菜单 mov ah,9h int 21h pop ds ;-选择命令-cmp_l1: mov ah,01h int 21h cmp al,l jnz cmp_L2 call list_all jmp startcmp_L2: cmp al,L jnz cmp_i1 call list_all jmp startcmp_i1: cmp al,i jnz cmp_I2 ca
5、ll insert jmp startcmp_I2: cmp al,I jnz cmp_q1 call insert jmp start cmp_q1: cmp al,q JNE cmp_Q2 je closef;直接退出cmp_Q2: cmp al,Q je closef exit: mov ax,4c00h int 21h系统的程序流程图2、子过程的算法设计 (1)插入信息(包含纠错)该过程的程序流程图.由于输入信息的子程序中很多算法类似相同,有些纠错方法相同,下面只介绍姓名程序段的流程图,对于输入数字的纠错,只是比较的对象变化,相应的循环次数发生相应变化,这和数据单元的预先定义有关。(2
6、)显示子程序使用的是类似输入子程序的流程。读取姓名、年龄、性别等采取的循环体与输入部分一致,在此不值得赘述。四 调试与测试调试程序的程序段(举例)init: ;memory initialize初始化 mov namesbx,0 inc bx cmp bx, 20 jl init mov bx, 0lp: ;从键盘接受数据 mov ah, 1 int 21h cmp al, 0dh jz inext cmp al, 0ah jz inext mov namesbx,al inc bx cmp bx, 10 jl lp以上是未调试之前的代码,对应输入子程序的姓名输入,运行的相应结果如下修改后代码
7、及截图start1: mov dx,offset mess_n ;增加部分 mov ah,9h int 21h mov bx,0init: ;memory initialize初始化 mov namesbx,0 inc bx cmp bx,20 jl init mov bx,0 ;从键盘接受数据 lp: mov ah,1 int 21h cmp al,0dh jz inext cmp al,0ah jz inext cmp al,61h;纠错;增加部分 jb error1; 增加部分 cmp al,7ah ja error1; ;增加部分 mov namesbx,al inc bx cmp b
8、x,10 jl lp error1: ;增加部分 lea dx,s5 ;提示 mov ah,9 int 21h jmp start1截图后边相应的改动于此类似,不在赘述。五 测试结果1、程序运行结果如下所示。上图是输入的情况,表示程序已经实现了纠错。2、显示列表、键入q就退出程序、键入任意键后退出DOS。 六 感想:这个程序是在原有程序的基础上修改得到的,原有程序没有输入的纠错功能,自己通过思考和同学讨论,对程序增加了纠错功能的提示和相应的跳转指令,实现当输入不合法时,可以返回相应的项目重新输入,这保证了程序的健壮性,跳转的位置设置很重要,一个程序段实现了,其余的便照搬可以了。程序定义了一个宏,宏中使用了bios中断,使屏幕上卷。宏插入的位置,是经过很多次尝试,最终确定下来的。通过这次实验,更加理解了宏的调用,和分支、循环程序的设计,尤其是数据段的定义,和写入文件的设计方法,改变了我以前依靠数组存储的编程思想 。总之,这个成绩程序已经完成了题目所要求的功能,并实现了纠错,算是一个比较完整的程序了。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1