实验报告 分支程序实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验3 分支程序实验
一.实验目的
1.掌握单分支、双分支、多分支程序的设计方法;
2.掌握利用DEBUG或CODEVIEW修改参数、检查结果的方法;
3.熟悉汇编语言源程序的编辑、汇编、连接及调试过程。
二.实验环境
PC微机
DOS操作系统或Windows 操作系统
MASM.EXE,LINK.EXE,或宏汇编集成环境
三.实验内容
1.猜数程序,预设一数字字符M,从键盘输入一个数字字符N,判断:若N
data segment
message db 0dh,0ah,'please input a number:$'
str1 db 0dh,0ah,'too big$'
str2 db 0dh,0ah,'too small$'
str3 db 0dh,0ah,'you are right$'
m db 38h
n db ?
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov dx,offset message
mov ah,9
int 21h
mov ah,1
int 21h
mov n,al
cmp al,m
ja a1
jb a2
mov dx,offset str3
mov ah,9
int 21h
jmp exit
a1: mov dx,offset str1
mov ah,9
int 21h
jmp exit
a2: mov dx,offset str2
mov ah,9
int 21h
jmp exit
exit: mov ah,4ch
int 21h
code ends
end start
2.编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示“IT IS A DIGITAL”;
若为A-Z或a-z字符,均显示“IT IS A LOWCASE LETTER”;若是回车字符
data segment
str1 db 0dh,0ah,'it is a digita$'
str2 db 0dh,0ah,'it is a lowcase letter$'
str3 db 0dh,0ah,'please intout a character$' data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
begin: lea dx,str3
mov ah,9
int 21h
mov ah,1
int 21h
cmp al,0dh
je exit
cmp al,'1'
jb begin
cmp al,'9'
jb s1
cmp al,'A'
jb begin
cmp al,'Z'
jb s2
cmp al,'a'
jb begin
cmp al,'z'
jb s2
jmp begin
s1: lea dx,str1
mov ah,9
int 21h
jmp begin
s2: lea dx,str2
mov ah,9
int 21h
jmp begin
exit: mov ah,4ch
int 21h
code ends
end start
3.预留字符串口令,输入口令串与预留密码串比较。若匹配则显示“MATCH”,否则显
示“NOMATCH!,PROGRAM TERMINATED!”
data segment
password db '123456'
str1 db 0dh,0ah,'match$'
str2 db 0dh,0ah,'no match!program terminated$'
str3 db 0dh,0ah,'please intout you password:$'
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov bx,offset password
mov bx,0
lea dx,str3
mov ah,09h
int 21h
mov cl,0
mov dl,0
input:
mov ah,01h
int 21h
inc cl
cmp al,0dh
je judge
cmp cl,1
je compare
inc bx
compare:
cmp al,password[bx]
je input
inc ch
jmp input
judge:
cmp cl,01h
je exit
cmp ch,0
je match
jmp nomatch
match:
lea dx,str1
mov ah,09h
int 21h
jmp start
nomatch:
lea dx,str2
mov ah,09h
int 21h
jmp start
exit:
mov ah,4ch
int 21h
code ends
end start
4.上述程序1、2、3分别完成后请编写一个程序来实现简单的程序菜单显示。(采用
地址跳跃表法实现)
显示一个菜单要求用户从下表中选择:
(1)GUESS NUMBER GAME (对应-->程序1)
(2)CHAR SELECTION PROGRAM(对应-->程序2)