实验报告 分支程序实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验3 分支程序实验

一.实验目的

1.掌握单分支、双分支、多分支程序的设计方法;

2.掌握利用DEBUG或CODEVIEW修改参数、检查结果的方法;

3.熟悉汇编语言源程序的编辑、汇编、连接及调试过程。

二.实验环境

PC微机

DOS操作系统或Windows 操作系统

MASM.EXE,LINK.EXE,或宏汇编集成环境

三.实验内容

1.猜数程序,预设一数字字符M,从键盘输入一个数字字符N,判断:若N M 则显示“TOO SMALL”;否则显示“YOUR ARE RIGHT”

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”;若是回车字符(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。

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)

相关文档
最新文档