版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 南昌大学实验报告学生姓名: 万升强 学 号: 6100412020 专业班级: 电三121班 实验类型: 验证 综合 设计 创新 实验日期: 2013.12.08 实验成绩: 实验3 分支程序实验一实验目的1 掌握单分支、双分支、多分支程序的设计方法;2 掌握利用DEBUG或CODEVIEW修改参数、检查结果的方法;1 熟悉汇编语言源程序的编辑、汇编、连接及调试过程。二实验内容1猜数程序,预设一数字字符M,从键盘输入一个数字字符N,判断:若N <M,显示“TOO BIG”;若N >M 则显示“TOO SMALL”;否则显示“YOUR ARE RIGHT”data segment
2、hex dw 35h message_1 db 0dh,0ah,'please input a number',0dh,0ah,'$' message_2 db 0dh,0ah,'too big',0dh,0ah,'$' message_3 db 0dh,0ah,'too small',0dh,0ah,'$' message_4 db 0dh,0ah,'your are right',0dh,0ah,'$'data endscode segment assume cs
3、:code,ds:datastart:mov ax,data mov ds,ax mov dx,offset message_1 mov ah,9 int 21h mov ax,hex mov bx,axagain:mov ah,1 ;输入比较数 int 21h cmp al,1bh ;比较大小 je exit cmp bl,al jc age_2 ;小则跳转到age_2 ja age_3 ;大则跳转到age_3 je age_4 ;相等则跳转到 age_4age_2:mov dx,offset message_2 mov ah,9 int 21h jmp againage_3:mov dx,
4、offset message_3 mov ah,9 int 21h jmp againage_4:mov dx,offset message_4 mov ah,9 int 21h jmp again exit:mov ah,4ch ;程序结束 int 21hcode ends end start2 编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示“IT IS A DIGITAL”;若为A-Z或a-z字符,均显示“IT IS A LOWCASE LETTER”;若是回车字符<CR>(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。data
5、segment message_1 db 0ah,'it is a digital',0ah,'$' message_2 db 0ah,'it is a alowcase letter',0ah,'$' message_3 db 0ah,'please input a key',0ah,'$'data endscode segment assume ds:data,cs:codestart:mov ax,data mov ds,ax mov dx,offset message_3 mov ah,9
6、int 21hagain:mov ah,1 ;输入数据 int 21h cmp al,0dh ;比较是否为回车,是就退出程序 je exit cmp al,30h ;比较是数字还是字母 jc again cmp al,39h jbe age_1 cmp al,41h jc again cmp al,5ah jbe age_2 cmp al,61h jc again cmp al,7ah jbe age_2 ja againage_1:mov dx,offset message_1 mov ah,9 int 21h jmp againage_2:mov dx,offset message_2 m
7、ov ah,9 int 21h jmp againexit:mov ah,4ch int 21hcode ends end start 3 预留字符串口令,输入口令串与预留密码串比较。若匹配则显示“MATCH”,否则显示“NOMATCH!,PROGRAM TERMINATED!”data segment message1 db 'jason' message1_len equ $-message1 message3 db 0dh,0ah,'match!$' message2 db 0ah,0dh,'nomatch,progam terminated!$&
8、#39; buffer db '50',?,50 dup(?)data endscode segment assume cs:code,ds:datastart:mov ax,data mov ds,axagain:lea dx,buffer ;输入字符串 mov ah,0ah int 21h cmp al,1bh ;是esc则退出程序 je exit xor cx,cx mov cl,buffer1 cmp cl,message1_len ;比较预留字符与输入字符长度 jne age_2 ;长度不相等则跳转age_2 mov di,0 mov si,2lop: mov al,
9、message1di ;逐一比较预留字符和输入字符 mov bl,buffersi cmp al,bl jne age_2 ;比较中出现不同跳转至age_2 inc si inc di loop lopdisplay:lea dx,message3 ;完全相同则显示message3 mov ah,9 int 21h mov ah,4ch int 21hage_2:lea dx,message2 mov ah,9 int 21h jmp againexit:mov ah,4ch int 21h code ends end start45 上述程序1、2、3分别完成后请编写一个程序来实现简单的程序
10、菜单显示。(采用地址跳跃表法实现)显示一个菜单要求用户从下表中选择:(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 pr
11、ogram really?(Y:N)”要求用户从键盘键入字符,若是“Y”键,则继续程序的执行,若是“N”键,则返回到菜单。若用户选择4,要求程序显示提示信息“Please press ESC key to exit!”,并能按要求正确退出。DATA SEGMENT table dw start dw opt_1 ;子程序地址表 dw opt_2 dw opt_3 dw opt_4 menu db 0dh,0ah,'(1)Guess numble game '显示菜单 db 0dh,0ah,'(2)Char selection progrem ' db 0dh,0
12、ah,'(3)Password progrem ' db 0dh,0ah,'(4)Press "Esc" To quit ' db 0dh,0ah,'Your selection is $' str01 db 0dh,0ah,'The program will execute "Guess number game"!$' str02 db 0dh,0ah,'The program will execute "Char selection progrem"!$
13、9; str03 db 0dh,0ah,'The program will execute "Password progrem"!$' str04 db 0dh,0ah,'Press "Esc" To quit!$' str05 db 0dH,0aH,'Will you continue program really?(Y:N)$' str11 db 0dh,0ah,'Too big!$' str12 db 0dh,0ah,'Too small!$' str13 db 0dh
14、,0ah,'You are right!$' str14 db 0dh,0ah,'Please input a numble(press "Esc" to go back to the main menu):$' str21 db 0dh,0ah,'It is a digital!',0dh,0ah,'$' str22 db 0dh,0ah,'It is a lowcase letter!',0dh,0ah,'$' str23 db 0dh,0ah,'Please inp
15、ut a char(press "Esc" to go back to the main menu):$' key db 'jason$' ;预留密码为jason input db 7,?,7 dup(?) str31 db 0dh,0ah,'Match!$' str32 db 0dh,0ah,'Nomatch!,program terminated!$' str33 db 0dh,0ah,'Please input the password(six numbles):$'DATA ENDSCODE S
16、EGMENT ASSUME CS:CODE,DS:DATAstart: MOV AX,DATA MOV DS,AX lea si,table ;把地址表首地址给si lea dx,menu ;显示主菜单 mov ah,09h int 21h mov ah,01h ;输入选项 int 21h xor ah,ah sub al,30h shl ax,1 add si,ax jmp tablesi ;跳转到相应程序opt_1: ;程序1 lea dx,str01 mov ah,09h int 21hagain1: mov bl,35h lea dx,str14 mov ah,09h int 21h
17、mov ah,01h ;输入字符N int 21h cmp al,1bh ;按“Esc”返回到菜单 je start cmp al,bl ;比较N,M大小 ja lp11 ;大于跳转显示字符串1 jb lp12 ;大于跳转显示字符串2 lea dx,str13 ;等于跳转显示字符串3并退出程序 mov ah,09h int 21h jmp continue ;结束前退出的判断 lp11:lea dx,str11 ;大于跳转显示字符串1并重新输入 mov ah,09h int 21h jmp again1 lp12:lea dx,str12 ;小于跳转显示字符串2并重新输入 mov ah,09h
18、 int 21h jmp again1opt_2: lea dx,str02 mov ah,09h int 21h lea dx,str23 mov ah,09h int 21hagain2: mov ah,01h ;输入字符 int 21h cmp al,1bh je start cmp al,0dh ;按回车退出 je continue cmp al,30h ;跟0比较,小于则重新输入 jb again2 cmp al,39h ;跟9比较,不大于则是数字 ja lp21 lea dx,str21 mov ah,09h int 21h jmp again2 lp21:cmp al,41h ;
19、跟A比较,小于则重新输入 jb again2 cmp al,5ah ;跟Z比较,不大于则是字母 ja lp23 lp22:lea dx,str22 mov ah,09h int 21h jmp again2 lp23:cmp al,61h ;跟a比较,小于则重新输入 jb again2 cmp al,7ah ;跟z比较,不打于则是字母 ja again2 jmp lp22opt_3: lea dx,str03 mov ah,09h int 21h lp31:lea dx,str33 ;显示输入提示 mov ah,09h int 21h lea dx,input ;输入字符串,保存到input里
20、 mov ah,0ah int 21h mov cx,06h mov si,0 mov di,0again3: mov al,keydi ;input与key里的字符逐一比较 mov bl,inputsi+2 cmp al,bl jnz lp32 ;一旦出现不同,退出循环,跳转到lop2 inc si inc di loop again3 lea dx,str31 ;完全匹配,则密码正确,并退出程序 mov ah,09h int 21h jmp continue lp32:lea dx,str32 ;显示密码错误,并重新输入 mov ah,09h int 21h jmp lp31opt_4:
21、lea dx,str04 mov ah,09h int 21h mov ah,01h int 21h cmp al,1bh je exitcontinue: lea dx,str05 ;用户是否继续执行当前程序 mov ah,09h int 21h mov ah,01h int 21h cmp al,'y' ;按继续,按N退出 je yes cmp al,'Y' je yes cmp al,'n' je start cmp al,'N' je start jmp continue yes:jmp tablesi exit:MOV AH,4CH INT 21
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度冷链物流运输合同违约金赔偿及食品安全保障协议
- 2025年度商铺合作终止合同解除书
- 2025年度水电安装安全生产及职业健康保护合同
- 二零二五年度网络安全漏洞检测与修复合同2篇
- 2025年度电商直播平台主播才艺展示与劳动合同
- 二零二五年度离婚财产分割与子女生活费用及教育费用支付合同
- 2025年度零星维修及保养项目专项合同4篇
- 2025年度财务部合同管理信息化平台数据安全保护合同
- 2025年度个税起征点调整后签劳务合同税务风险防范服务合同
- 二零二五年度家畜养殖环境监测与改善合同4篇
- 医院手术室医院感染管理质量督查评分表
- 心内电生理导管及器械
- 称量与天平培训试题及答案
- 超全的超滤与纳滤概述、基本理论和应用
- 2020年医师定期考核试题与答案(公卫专业)
- 2022年中国育龄女性生殖健康研究报告
- 各种静脉置管固定方法
- 消防报审验收程序及表格
- 教育金规划ppt课件
- 呼吸机波形分析及临床应用
- 常用紧固件选用指南
评论
0/150
提交评论