分支程序设计实验报告分支结构程序设计.docx
《分支程序设计实验报告分支结构程序设计.docx》由会员分享,可在线阅读,更多相关《分支程序设计实验报告分支结构程序设计.docx(9页珍藏版)》请在冰豆网上搜索。
分支程序设计实验报告分支结构程序设计
分支程序设计实验报告分支结构程序设计
..
...
实验二分支程序设计
一、实验目的:
1、分支程序的设计方法
2、熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程
二、实验环境:
硬件环境IBM/PC及其兼容机
软件环境操作系统DOS
编辑程序EDIT或其他编辑程序
汇编程序MASM.EXE
连接程序LINK.EXE
调试程序DEBUG.EXE
三、实验容:
1、在屏幕上显示如下信息:
1------------------------Panda
2------------------------Cat
3------------------------Rabbit
4------------------------Pig
5------------------------EXIT
(Pleasechoose1,2,3,4or5)-----
若输入1,显示“Ilikepanda”后程序结束;若输入2,显示“Ilikecat”后程序结束;若输入3,显示“Ilikerabbit”后程序结束;若输入4,显示“Idon’tlikepig”后程序结束;若输入5,程序直接结束;若输入其它字符,显示“Youpressanerrorkey!
”后程序结束。
1)流程图
Y
Y
Y
Y
Y
N
N
N
N
N
开始
选项
用户输入
Al=1
Al=2
Al=3
Al=4
Al=5
Youpressanerrorkey
结束
Ilikepanda
Ilikecat
Ilikerabbit
Ilikedonotlikepig
2)源程序
DATASEGMENT
INFOR1DB0AH,0DH,"1-----------Panda:
$"
INFOR2DB0AH,0DH,"2-----------Cat:
$"
INFOR3DB0AH,0DH,"3-----------Rabbit;$"
INFOR4DB0AH,0DH,"4-----------pig:
$"
INFOR5DB0AH,0DH,"5-----------EXIT:
$"
INFOR6DB0AH,0DH,"(pleasechoose1,2,3,4or5---):
$"
INFOR7DB0AH,0DH,"IlikePanda:
$"
INFOR8DB0AH,0DH,"IlikeCat:
$"
INFOR9DB0AH,0DH,"IlikeRabbit;$"
INFOR10DB0AH,0DH,"Ilikepig:
$"
INFOR11DB0AH,0DH,"youpressanerrorkey!
:
$"
DATAENDS;数据段结束
CODESEGMENT;代码段开始
ASSUMECS:
CODE,DS:
DATA;段寻址
START:
MOVAX,DATA;将data的数据存入ax中
MOVDS,AX;为ds赋值
MOVDX,OFFSETINFOR1;返回变量INFOR1段偏移地址【运行后在屏幕上显示字符1-----------Panda:
】
MOVAH,09H
INT21H;执行九号功能调用
MOVDX,OFFSETINFOR2
MOVAH,09H
INT21H
MOVDX,OFFSETINFOR3
MOVAH,09H
INT21H
MOVDX,OFFSETINFOR4
MOVAH,09H
INT21H
MOVDX,OFFSETINFOR5;返回变量INFOR5段偏移地址【运行后在屏幕上显示字符5-----------EXIT:
】
MOVAH,09H
INT21H
MOVDX,OFFSETINFOR6
MOVAH,09H
INT21H
MOVAH,01H
INT21H
CMPAL,'1'
JEPanda
CMPAL,'2'
JECat
CMPAL,'3'
JERabbit
CMPAL,'4'
JEPig
CMPAL,'5'
JEPEND
JMPOther
Panda:
MOVDX,OFFSETINFOR7
MOVAH,09H
INT21H
JMPPEND
Cat:
MOVDX,OFFSETINFOR8
MOVAH,09H
INT21H
JMPPEND
Rabbit:
MOVDX,OFFSETINFOR9
MOVAH,09H
INT21H
JMPPEND
Pig:
MOVDX,OFFSETINFOR10
MOVAH,09H
INT21H
JMPPEND
Other:
MOVDX,OFFSETINFOR11
MOVAH,09H
INT21H
JMPPEND
PEND:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
2、从键盘输入一字符,判断该字符是小写字母、大写字母、数字或其它字符。
若输入为小写字母,显示“YouInputaLowercaseLetter!
”;若输入为大写字母,显示“YouInputaUppercaseLetter!
”;若输入为数字,显示“YouInputaDigit!
”;若输入为其它字符,显示“YouInputOtherLetter!
”。
编程指导
数字0?
9的ASCII码为30H?
39H;大写字母的ASCII码为41H?
5AH,小写字母的ASCII码为61H?
7AH。
本题目将字符分为小写字母、大写字母、数字及其它字符,根据键入字符的ASCII码值判断其所属类型,并显示相应的信息。
字符串显示使用功能号为09H的DOS功能调用,接收键盘输入的单个字符使用功能号为01H的DOS功能调用。
YY
Y
Y
Y
Y
Y
Y
显示提示信息“PleasePressAnyKeytoinputaletter”
及功能号为1的接收键盘输入单个字符的指令序列
开始
结束素、、
(AL)<’0’
(AL)<=’9’
(AL)<’A’
(AL)<=’Z’
(AL)<’a’
(AL)<=’z’
输入的是小写字母,显示信息
输入的是大写字母,显示信息
输入的是数字,显示有关信息
输入的是其它字符,显示信息
流程图
2)源程序
DATASEGMENT
INFOR1DB0AH,0DH,"PleasePressAnyKeytoinputaletter:
$"
INFOR2DB0AH,0DH,"Youinputalowercaseletter!
$"
INFOR3DB0AH,0DH,"YouinputaUppercaseletter!
$"
INFOR4DB0AH,0DH,"YouinputaDigit!
$"
INFOR5DB0AH,0DH,"YouinputOtherletter!
$"
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA;显示信息“PleasePressAnyKeytoinputaletter”的指令序列以及接收从键盘输入一个字符的指令序列
MOVDS,AX
MOVDX,OFFSETINFOR1
MOVAH,09H
INT21H
MOVAH,01H
INT21H
CMPAL,'0'
JBOTHER
CMPAL,'9'
JBEDIGIT
CMPAL,'A'
JBOTHER
CMPAL,'Z'
JBEUPPER
CMPAL,'a'
JBOTHER
CMPAL,'z'
JBELOWER
JMPPEND
LOWER:
;显示“YouInputaLowercaseLetter!
”的指令序列
MOVDX,OFFSETINFOR2
MOVAH,09H
INT21H
JMPPEND;注意执行完一个分支后应使程序跳出
UPPER:
;显示“YouInputaUppercaseLetter”的指令序列
MOVDX,OFFSETINFOR3
MOVAH,09H
INT21H
JMPPEND
DIGIT:
;显示“YouInputaDigit!
”的指令序列
MOVDX,OFFSETINFOR4
MOVAH,09H
INT21H
JMPPEND
OTHER:
;显示“YouInputOtherLetter!
”的指令序列
MOVDX,OFFSETINFOR5
MOVAH,09H
INT21H
PEND:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
四、
通过这次上机实验,我掌握了分支程序额设计方法,宏定义及宏调用的基本方法,了解了小写字母和大写字母的ASCII码表示及其转换方法,了解了数字及其他字符的ASCII码表示方法,进一步掌握了调试工具的使用方法。