[毕业设计精品]《汇编语言》课程设计案例 菜单管理系统.doc

上传人:文库蛋蛋多 文档编号:2392535 上传时间:2023-02-17 格式:DOC 页数:27 大小:304KB
返回 下载 相关 举报
[毕业设计精品]《汇编语言》课程设计案例 菜单管理系统.doc_第1页
第1页 / 共27页
[毕业设计精品]《汇编语言》课程设计案例 菜单管理系统.doc_第2页
第2页 / 共27页
[毕业设计精品]《汇编语言》课程设计案例 菜单管理系统.doc_第3页
第3页 / 共27页
[毕业设计精品]《汇编语言》课程设计案例 菜单管理系统.doc_第4页
第4页 / 共27页
[毕业设计精品]《汇编语言》课程设计案例 菜单管理系统.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《[毕业设计精品]《汇编语言》课程设计案例 菜单管理系统.doc》由会员分享,可在线阅读,更多相关《[毕业设计精品]《汇编语言》课程设计案例 菜单管理系统.doc(27页珍藏版)》请在三一办公上搜索。

1、课程设计说明书专 业: _ 计算机科学与技术_课程名称: _汇编课程设计_ 班级: _计科 _姓 名:_ _学号: 设计题目:_菜单管理系统_设计时间:_2011-6-20_至_2011-7-1_评 语:_评阅成绩: 评阅教师: 课程设计报告的要求1、需求分析描述问题。简述课题要解决的问题是什么,有什么要求和限制条件。2、总体设计(程序设计组成框图、流程图)3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,过程调用关系描述等)4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施5、测试结果,用几组测试数据进行测试算法设计的正确性。6、附录。源程序清

2、单和结果:源程序要加注释。结果要包括测试数据和运行结果。汇编语言课程设计案例 一.问题陈述及其需求分析要求:利用汇编语言编写应用程序菜单的基本方法。内容:编写程序,在文本方式下显示一个英文菜单。要求分别显示“FILE”,“EDIT”,“TOOL”,“QUIT”,并对每项菜单的输入有所响应。 菜单管理系统其中包括以下几个模块:(1)文件子菜单。(2)编辑子菜单。(3)工具子菜单。(4)退出子菜单 菜单管理系统菜单包括:文件,编辑,工具,退出。使之提供以下功能:1、系统以菜单方式工作2、创建文件3、编辑文件4、打开文件5、复制文件6、粘贴到指定文件7、版权说明8、帮助说明9、退出。二.总体设计功能

3、结构图设计依据程序的功能需求,描述该系统功能的结构图如下:菜单管理系统FOUND建立OPEN打开COPY复制PASTE粘贴TEL电话HELP版权ENDS退出FILEEDITTOOLQUIT 图1 系统功能结构图模块简介依据程序的功能模块的划分,各模块定义如下: (1)建立文件并编辑文件模块名:FOUND模块描述:通过此模块可以在C盘创建文件并可以用键盘输入所要编辑的内容。同时输入的内容信息写入创建的文件。输入名字有误即为空时则弹出相应信息提示。(2)打开文件模块名:OPEN模块描述:通过此模块可以打开在C盘的特定格式文件并在屏幕上显示文件内容。输入名字有误即为空时则弹出相应信息提示。输入文件名

4、和以存在文件不匹配时则提示文件不存在。(3)复制文件模块名:COPY模块描述:根据文字提示,输入已存在的文件名显示显示该文件全部信息并复制其内容至缓冲区,输入名错误则提示。文件不存在则提示。(4)粘贴模块名:PASTE模块描述:通过此模块可以在C盘创建新文件或者打开已有文件并将复制缓冲区的内容粘贴到该文件。输入名字有误即为空时则弹出相应信息提示。(5)电话联系模块名:TEL模块描述:提示如有问题可致电。(6)版权说明模块名:HELP模块描述:显示软件系统版权。(7)退出模块名:QUIT 模块描述:退出菜单管理系统。三详细设计算法说明1、主过程的算法设计: 清屏、显示菜单及运用选择操作,调用各个

5、菜单功能,最后选择QUIT退出程序,也可按快捷键ESC退出程序。2、子过程的算法设计 (1)FOUND该过程的程序流程图如图所示。结束输入错误提示创建文件用户选择是否编辑NY名字是否为空输入文件名数据区清零开始(2) OPEN该过程的程序流程图如图1所示。 (3)COPY该过程的程序流程图如图2所示。 (4)PASTE该过程的程序流程图如图3所示。输入错误提示Y名字是否为空输入文件名数据区清零开始N文件是否存在NY文件不存在提示打开文件显示内容结束 流程图1结束NY名字是否为空输入文件名数据区清零开始N输入错误提示文件不存在提示文件是否存在Y打开文件显示内容并复制 流程图2开始数据区清零是否创

6、建新文件YN输入文件名输入文件名名字是否为空Y名字是否为空YNN文件是否存在N创建文件并粘贴Y输入错误提示文件不存在提示打开文件并粘贴结束 流程图3(5) TEL帮助信息(6) HELP版权说明(7) ENDS退出四编码和测试1、 程序运行结果主界面如图所示。 主界面2、在主菜单下选项FILE项,则出现如图所示模块界面。测试实例如图。 模块FILE界面选择FOUND完成文件名输入后创建成功,程序显示编辑区。后按ENTER键结束编辑,选择左右键程序选择主菜单。按enter键显示子菜单选择上下选择子功能。选择OPEN则输入文件名,打开文件。3. 在主菜单EDIT。显示如图。 选择EDIT完成文件名

7、输入后创建成功,程序显示文件内容。后按ENTER键结束复制,选择左右键程序选择主菜单。按enter键显示子菜单选择上下选择子功能。选择PASTE则输入文件名,打开文件或创建文件并粘贴。4. 在主菜单tool。显示如图。 主程序图 子菜单下选择TEL功能: 子菜单下选择HELP功能: 5.错误提示 6.主菜单下选择QUIT,如图所示。 五 主要代码;* ; 回车空格宏;* hckg macromov dl,13mov ah,2int 21hmov dl,10int 21hendm;* ; 字符串输出宏;* outchar macro a0lea dx,a0mov ah,9int 21hendm;

8、* ; 指定屏幕初始化宏;* showscreen macro color,leftline,leftrow,rightline,rightrow pushamov ah,06h mov al,0 mov bh,color mov ch,leftline mov cl,leftrow mov dh,rightline mov dl,rightrow int 10h popaendm ;* ; 菜单动态改变宏;* changemenu macro line,row,width,color local m Pusha;入栈保护 mov dl,row m: setpos line,dl mov bh

9、,0 mov ah,08h;读取菜单字符 int 10h mov bl,color mov cx,1 mov ah,09h显示菜单字符 int 10h add dl,1 mov al,row add al,width cmp dl,al jne m setpos line,row;鼠标定位 Popa;出栈 endm;* ; 光标置位宏;* setpos macro line,row mov bh,0 mov dh,line mov dl,row mov ah,2 int 10h endm;* ; windows边框绘制;* windowdraw macro leftline,rightline

10、,leftrow,rightrow,colors pusha mov ah,06h mov al,0 mov bh,colors mov ch,leftline mov cl,leftrow mov dh,rightline mov dl,rightrow int 10h popa endm;* ; 建立子菜单宏;* submennu macro firstrow,menu1,menu2 mov al,firstrow mov buffer,al add byte ptr buffer,4 showscreen 0a9h, 1,firstrow,2,buffer setpos 1,firstr

11、ow outchar menu1 setpos 2,firstrow outchar menu2 setpos 1,firstrow endm;*submennu1 macro firstrow,menu1;QUIT 菜单子菜单单独设置宏 mov al,firstrow mov buffer,al add byte ptr buffer,4 showscreen 0a9h, 1,firstrow,2,buffer setpos 1,firstrow outchar menu1 setpos 0,firstrow endm;* ; 子菜单隐屏;*subcls macro showscreen 0

12、7h,1,0,23,79 endm ;* ; 数据定义区开始;* DATAS SEGMENT a1 db File db 5 dup( ), Edit db 5 dup( ), Tool db 5 dup( ),Quit$ a2 db 10 dup(?),you can press esc to quit!$ ;*file menu menu11 db found,$ menu12 db open ,$ ;*edit menu menu21 db copy ,$ menu22 db paste,$ ;*tool menu menu31 db tel ,$ menu32 db help ,$ ;

13、*quit menu menu41 db ends ,$ buffer db 0 buffer11 db 0 buffer12 db 1 number dw ? a3 db number 1$ a4 db number 2$ error1 db Input file name is error!$ inputname db please input file name(length10):$ yy db *You operation is success!you can select fuction or quit!*$ noin db you input file is not exit!$

14、 xx db paste in new found file?(y/n):$;*file fname db c:,15 dup(?) fname1 db c:,15 dup(?) data1 db 100h dup(0) data2 db 100h dup(0) ;*helphelp1 db welcome to use this system!$help2 db copyright 2012 made in lucks!$phone db if you have any question please call 12345678$;*editchocie db ?data3 db 100h

15、dup(0) fname3 db c:,15 dup(?)handle dw ?DATAS ENDS;* ; 数据定义区结束;* CODES SEGMENT ASSUME CS:CODES,DS:DATAS;*; 主代码段;*START: mov AX,DATAS mov DS,AX;* ; 绘制边框屏幕;* showscreen 07h,1,0,24,79;显示区屏显设置 windowdraw 24,1,0,79,0a8h;显示边框设置 setpos 24,0 outchar a2;提示符输出显示 setpos 0,0;* ; 绘制工具条;* showscreen 74h,0,0,0,79

16、outchar a1;* ; 总选择调制段;* changemenu 0,0,4,14h m1:setpos 0,0 k: mov buffer12,1 mov ah,0 int 16h cmp ah,01h jz over cmp ah,1ch;是否为回车 jz m5 jmp m6;* ; 子菜单按条件显示段;* m5:mov al,buffer11 cmp al,27;是否为QUIT jz d4 cmp al,18;是否为TOOL jz d3 cmp al,9;是否为EDIT jz d2 d1:submennu buffer11,menu11,menu12;显示file子菜单 call s

17、elect call function jmp k d2:submennu buffer11,menu21,menu22;显示edit子菜单 call select call function jmp k d3:submennu buffer11,menu31,menu32;显示tool子菜单 call select call function jmp k d4:submennu1 buffer11,menu41;显示quit子菜单 setpos 1,buffer11 changemenu 1,buffer11,5,8fh f2:mov ah,0;输入单个字符 int 16h cmp ah,0

18、1h;是否为ESC jz over cmp ah,4dh;是否为选择键 jz m7 cmp ah,4bh;是否为选择键 jz m4 cmp ah,1ch;是否为回车键 jz over1 jmp f2 ;* ; 左右选择段;* m6:cmp ah,4dh jz m7 cmp ah,4bh jz m4 jmp m1;*; 向右选择调制();* m7:subcls;清屏 mov buffer12,1 mov bl,buffer11 cmp bl,27;是否为quit项 jz m3 changemenu 0,buffer11,4,74h;恢复前一项 add byte ptr buffer11,9 ch

19、angemenu 0,buffer11,4,14h;选中当前项 jmp k m3: changemenu 0,buffer11,4,74h;恢复前一项 mov buffer11,0 changemenu 0,buffer11,4,14h;选中当前项 jmp k;*; 向右选择调制();* m4:subcls mov buffer12,1 mov bl,buffer11;列 cmp bl,0 jz m2 changemenu 0,buffer11,4,74h;恢复前一项 sub byte ptr buffer11,9 changemenu 0,buffer11,4,14h;选中当前项 jmp k

20、 m2:changemenu 0,buffer11,4,74h;恢复前一项 mov buffer11,27 changemenu 0,buffer11,4,14h;选中当前项 jmp k ;* ; 上键调制选择();* m8:mov al,buffer12;行 cmp al,1 jz p1 changemenu buffer12,buffer11,5,0a9h;恢复前一项 sub byte ptr buffer12,1 changemenu buffer12,buffer11,5,8fh;选中当前项 jmp f p1:changemenu buffer12,buffer11,5,0a9h;恢复

21、前一项 mov buffer12,2 changemenu buffer12,buffer11,5,8fh ;选中当前项 jmp f ;* ; 下键调制选择();* m9:mov al,buffer12 cmp al,2 jz p2 changemenu buffer12,buffer11,5,0a9h;恢复前一项 add byte ptr buffer12,1 changemenu buffer12,buffer11,5,8fh;选中当前项 jmp f p2:changemenu buffer12,buffer11,5,0a9h;恢复前一项 mov buffer12,1 changemenu

22、 buffer12,buffer11,5,8fh ;选中当前项 jmp fover1:subcls;清屏over:MOV AH,4CH INT 21H;* ; 上下左右功能选定;* select proc setpos 1,buffer11 changemenu 1,buffer11,5,8fh f: mov ah,0;输入单个字符 int 16h cmp ah,01h;是否为ESC jz over cmp ah,4dh;是否为选择键 jz m7 cmp ah,4bh是否为选择键 jz m4 cmp ah,50h是否为选择键 jz m9 cmp ah,48h是否为选择键 jz m8 cmp a

23、h,1ch是否为enter选择键 jz p3 jmp f p3: ret select endp ;* ; 子菜单选定功能实现;* function proc subcls mov bl,buffer12 mov al,buffer11 cmp al,18 jz b3 cmp al,9 jz b2 cmp bl,2 jz b11 call found jmp y b11:call open jmp y b2:cmp bl,2 jz b21 call copy jmp y b21:call paste jmp y b3:cmp bl,2 jz b31 call tel jmp y b31:cal

24、l help jmp y y: ret function endp;* ; 建立文件并编辑子程序(默认C盘);* found proc mov bx,0;数据区清零 mov cx,100h ee2:mov data1bx, inc bx loop ee2 Subcls;清屏 setpos 1,0 outchar inputname;输入文件名 mov si,3 mov cx,10 w1: mov ah,1 int 21h cmp al,13 jz w2 mov fnamesi,al inc si loop w1 w2:cmp si,3 jz end3 mov fnamesi,. ;添加文件后缀

25、名 inc si mov fnamesi,t inc si mov fnamesi,x inc si mov fnamesi,t inc si mov fnamesi,0 lea dx,fname;取文件文件路径,名首地址 mov cx,0 mov ah,3ch;创建文件 int 21h mov si,ax;保存文件句柄 subcls setpos 1,0 mov bx,0 mov cx,100hera:mov ah,1;输入数据到缓冲区 int 21h cmp al,13 jz end1 mov data1bx,al inc bx loop era end1:cmp cx,100h;循环次数

26、,即可输入字符数目 jz end4 lea dx,data1 mov cx,100h mov bx,si mov ah,40h;文件写入文件 int 21h mov bx,si mov ah,3eh;关闭文件 int 21h setpos 23,4 outchar yy;操作成功提示 setpos 3,0 jmp end4end3:subcls;清屏 setpos 4,10 outchar error1;错误提示 end4: ret found endp;* ; 打开文件子程序(默认C盘);* open proc mov bx,0 mov cx,100h ee1:mov data2bx, in

27、c bx loop ee1 subcls setpos 1,0 outchar inputname mov si,3 mov cx,10ww1: mov ah,1 int 21h cmp al,13 jz ww2 mov fname1si,al inc si loop ww1ww2:cmp si,3 jz pend2 mov fname1si,. inc si mov fname1si,t inc si mov fname1si,x inc si mov fname1si,t inc si mov fname1si,0 lea dx,fname1 mov ah,3dh;打开文件 int 21h

28、 mov si,ax;保存文件句柄 jc pend4 subcls setpos 1,0 mov bx,si mov cx,100h lea dx,data2 mov ah,3fh;读取文件 int 21h mov bx,0 mov cx,100hepa:mov dl,data2bx;在屏幕显示数据 mov ah,2 int 21h inc bx loop epa mov bx,si mov ah,3eh;关闭文件 int 21h setpos 23,4 outchar yy setpos 3,0 jmp pend3pend4:subcls setpos 4,10 outchar noin;文件不存在提示 jmp pend3pend2:subcls setpos 4,10 outchar error1 pend3: ret open endp;* ; 版权说明子程序;* tel proc subcls setpos 2,10 outchar phone;帮

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号