分支程序实验分析

上传人:1** 文档编号:318876 上传时间:2018-05-22 格式:DOC 页数:12 大小:128.50KB
返回 下载 相关 举报
分支程序实验分析_第1页
第1页 / 共12页
分支程序实验分析_第2页
第2页 / 共12页
分支程序实验分析_第3页
第3页 / 共12页
点击查看更多>>
资源描述
南 昌 大 学 实 验 报 告学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 实验成绩: 实验 3 分支程序实验一实验目的1 掌握单分支、双分支、多分支程序的设计方法;2 掌握利用 DEBUG 或 CODEVIEW 修改参数、检查结果的方法;1 熟悉汇编语言源程序的编辑、汇编、连接及调试过程。二实验内容1猜数程序,预设一数字字符 M,从键盘输入一个数字字符 N,判断:若 N M 则显示“TOO SMALL ”;否则显示“YOUR ARE RIGHT”data segmentM db 6N db ?mesg1 db 0dh,0ah,too small$mesg2 db 0dh,0ah,too big$mesg3 db 0dh,0ah,you are right$ data endscode segmentassume ds:data,cs:codestart:mov ax,datamov ds,axmov ah,01hint 21hmov N,alcmp al,1bh;如果输入是 esc 键就退出jmp exitcmp al,Mjb small;比 M 小就跳去 smallja big;比 M 大就跳去 bigmov dx,offset mesg3;显示正确mov ah,09hint 21hjmp startsmall:mov dx,offset mesg1;显示太小字符串mov ah,09hint 21hjmp start big:mov dx,offset mesg2;显示太大字符串mov ah,09hint 21hjmp startexit:mov ah,4chint 21hcode endsend start输入 3 显示 too small,输入 9 显示 too big2 编写一个程序,判别键盘上输入的字符;若是 1-9 字符,则显示“IT IS A DIGITAL”;若为 A-Z 或 a-z 字符,均显示“IT IS A LOWCASE LETTER”;若是回车字符(其 ASCII 码为 0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。data segmentN db ?mesg1 db 0dh,0ah,it is a digital$mesg2 db 0dh,0ah,it is a lowcase letter$data endscode segmentassume ds:data,cs:codestart:mov ax,datamov ds,axmov ah,01hint 21hmov N,alcmp al,0dh;如果输入为回车则退出je exitcmp al,31hjb start;比 1 小就重新再来cmp al,39hja let;比 9 大就跟字母比较mov dx,offset mesg1;输出是数字mov ah,09hint 21hjmp startlet:cmp al,Ajb start;比 A 小就重新再来cmp al,Zjb display;比 Z 大就输出cmp al,ajb start;比 a 小就重新再来cmp al,zja start;比 z 大就重新再来display:mov dx,offset mesg2;输出是字母mov ah,09hint 21hjmp startexit:mov ah,4chint 21hcode endsend start3 预留字符串口令,输入口令串与预留密码串比较。若匹配则显示“MATCH”,否则显示“NOMATCH!,PROGRAM TERMINATED!”data segmentmesg1 db 0dh,0ah,match$mesg2 db 0dh,0ah,nomatch!,program terminated!$mesg3 db hello$data endscode segmentassume ds:data,cs:codestart:mov ax,datamov ds,axmov bx,0mov cl,0mov ch,0;cl 和 ch 都清零input:mov ah,01hint 21h;输入字符inc cl;计算输入字符数cmp al,0dhje guide;输入是回车就跳进判断语句cmp cl,1;cl 是 1 的时候,bx 是 0je compareinc bxcompare:cmp al,mesg3bxje input;如果输入相等则继续比较inc ch;存放输入不同的字符个数jmp inputguide:cmp cl,01h;什么也没输入就退出je exitcmp cl,6;输入字符数与预设不同则不符合jne nocmp ch,0;输入字符数不同的个数为 0 则符合jne nomov dx,offset mesg1mov ah,09hint 21hjmp startno:lea dx,mesg2mov ah,09hint 21hjmp startexit:mov ah,4chint 21hcode endsend start输入 hello 显示 match,输入 MM 显示 no match4 上述程序 1、2、3 分别完成后请编写一个程序来实现简单的程序菜单显示。(采用地址跳跃表法实现)显示一个菜单要求用户从下表中选择:(1) GUESS NUMBER GAME (对应 程序 1)(2) CHAR SELECTION PROGRAM(对应程序)(3) PASSWORD PROGRAM(对应程序)(4) PRESS “ESC” TO QUIT用户作出选择 13 时,显示输出要执行操作的名字,如“Your selection is 1,the program will execute GUESS NUMBER GAME!”然后转向相应的程序去执行,执行结束前进行退出的判断,显示一个提示信息“will you continue program really?(Y:N)” 要求用户从键盘键入字符,若是“Y”键,则继续程序的执行,若是“N”键,则返回到菜单。若用户选择 4,要求程序显示提示信息“Please press ESC key to exit!”,并能按要求正确退出。data segmentadr dw adr1;定义地址表dw adr2dw adr3dw adr4menu db 0dh,0ah,menu:;定义目录db 0dh,0ah,(1)guess number gamedb 0dh,0ah,(2)char selection programdb 0dh,0ah,(3)password programdb 0dh,0ah,(4)press esc to quit$ase1 db 0dh,0ah,your selection is 1,the program will execute guess number game!$,0dh,0ahase2 db 0dh,0ah,your selection is 2,the program will execute char selectiong program!$,0dh,0ahase3 db 0dh,0ah,your selection is 3,the program will execute password program!$,0dh,0ahstr1 db 0dh,0ah,will you continue program really?(Y:N)$str2 db 0dh,0ah,please press esc key to exit!$str3 db 0dh,0ah,please input number between 1 to 9$guess1 db 0dh,0ah,too big$guess2 db 0dh,0ah,too small$guess3 db 0dh,0ah,you are right$M db 6N db ?char1 db 0dh,0ah,it is a digital$char2 db 0dh,0ah,it is a lowcase letter$code1 db 0dh,0ah,match$code2 db 0dh,0ah,nomatch!program terminated!$code3 db hello$data endscode segmentassume ds:data,cs:codestart:mov ax,datamov ds,axmov si,0mov bx,0lea si,adr;把地址表首地址给 simov dx,offset menu;显示主菜单mov ah,09hint 21hmov dl,0dh;换行mov ah,2int 21hmov dl,0ah;回车mov ah,2int 21hmov ah,1;输入选项int 21hcmp al,0dh;输入是回车就退出je L1mov ah,0;ah 置零sub al,31hshl ax,1add si,axjmp adrsi ;地址跳跃表法adr1:lea dx,ase1mov ah,9int 21h ;提示选中 1 语句lea dx,str3mov ah,9int 21hmov dl,0dhmov ah,2int 21hmov dl,0ahmov ah,2int 21h ;回车换行mov ah,01hint 21hmov N,alcmp al,Mjb small ;比 M 小就跳去 smallja big;比 M 大就跳去 bigmov dx,offset guess3 ;显示正确mov ah,09hint 21he1: lea dx,str1 ;判断是否回主菜单mov ah,9int 21hmov ah,1int 21hcmp al,Yje adr1jmp startsmall:mov dx,offset guess2 ;显示太小字符串mov ah,09hint 21hjmp e1big:mov dx,offset guess1 ;显示太大字符串mov ah,09hint 21hjmp e1L1:jmp adr4 ;跳跃 jump 接力adr2:lea dx,ase2;提示选中 2 语句mov ah,9int 21hmov dl,0dhmov ah,2int 21hmov dl,0ahmov ah,2int 21h ;回车换行mov ah,01hint 21hmov N,alcmp al,31hjb adr2;比 1 小就重新再来cmp al,39hja let; 比 9 大就跟字母比较mov dx,offset char1;输出是数字mov ah,09hint 21he2: lea dx,str1 ;判断是否回主菜单mov ah,9int 21hmov ah,1int 21hcmp al,Yje adr2jmp startlet:cmp al,Ajb adr2;比 A 小就重新再来cmp al,Zjb display;比 Z 大就输出cmp al,ajb adr2;比 a 小就重新再来cmp al,zja adr2;比 z 大就重新再来display:mov dx,offset char2mov ah,09hint 21hjmp e2adr3:lea dx,ase3;提示选中 3 语句mov ah,9int 21hmov dl,0dhmov ah,2int 21hmov dl,0ahmov ah,2int 21h;回车换行mov bx,0mov cl,0mov ch,0;cl 和 ch 都清零input:mov ah,01hint 21h;输入字符inc cl;计算输入字符数cmp al,0dhje guide;输入是回车就跳进判断语句cmp cl,1;cl 是 1 的时候,bx 是 0je compareinc bxcompare:cmp al,code3bxje input;如果输入相等则继续比较inc ch;存放输入不同的字符个数jmp inputguide:cmp cl,6;输入字符数与预设不同则不符合jne nocmp ch,0;输入字符数不同的个数为 0 则符合jne nomov dx,offset code1mov ah,09hint 21hlea dx,str1;判断是否回主菜单mov ah,9int 21hmov ah,1int 21hcmp al,Yje adr3jmp startno:lea dx,code2mov ah,09hint 21hlea dx,str1;判断是否回主菜单mov ah,9int 21hmov ah,1int 21hcmp al,Yje adr3jmp startadr4:lea dx,str2;提示选中 4 语句mov ah,9int 21hmov ah,1int 21hcmp al,1bh jne adr4;判断输入是否是 ESC 键mov ah,4chint 21h ;退出code endsend start三实验要求1编写实验内容要求的四个程序; 2熟悉源程序汇编、连接命令的使用方法。3认真完成上述习题,采用 DEBUG 或 CODEVIEW 进行调试,编辑实验方案,运行程序,并调试程序,写出正确结果以及遇到的问题和解决方法。4实验过程请认真记录,并对结果进行分析写出实验体会或意见。四实验环境PC 微机DOS 操作系统或 Windows 操作系统MASM.EXE, LINK.EXE,DEBUG.COM 或宏汇编集成环境五实验步骤1 用 EDIT 或其它编辑软件,编写.ASM 源程序, 2对其进行汇编及连接,产生.EXE 文件。3. 在 MS-DOS 下运行这两个.EXE 文件。4对.EXE 文件进行调试运行。(1)用 DEBUG 调试运行,学会通过命令 R、U 、D 等命令观察数据变化,学会T、G 命令来实现程序的单步或断点调试调试。(2)用 CODEVIEW 调试运行,学会使用该集成环境中的各个窗口综合观察寄存器、内存单元等变化,学会使用功能键进行单步或断点调试。六实验报告要求1画出四个程序的流程图,若要独立编写程序,应列出相应的程序清单。程序中应有相应的注释信息。2在报告中说明本实验是如何利用 DEBUG 或 CODEVIEW 进行调试的。3编辑实验方案,运行程序,并调试程序,写出正确结果以及遇到的问题和解决方法。4实验过程请认真记录,并对结果进行分析,写出实验体会或总结,此部分将作为评价标准之一。七实验记录及程序清单1、流程图:输入一个数 NN=ESC 键NM提示太小NM提示太大显示正确退出YYYNNN八实验总结1、懂得了单分支,双分支以及多分支的程序设计方法,掌握了利用 DEBUG 修改参数、检查结果的方法,熟悉了汇编语言源程序的编辑、汇编、连接及调试过程。
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!