实验二分支程序设计一、实验目的:1、学习分支程序的设计方法2、熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程二、实验环境:硬件环境IBM/PC及其兼容机软件环境操作系统DOS编辑程序EDIT或其他编辑程序汇编程序MASM.EXE连接程序LINK.EXE调试程序DEBUG.EXE三、实验内容:1、在屏幕上显示如下信息:1------------------------Panda2------------------------Cat3------------------------Rabbit4------------------------Pig5------------------------EXIT(Pleasechoose1,2,3,4or5)-----若输入1,显示“Ilikepanda”后程序结束;若输入2,显示“Ilikecat”后程序结束;若输入3,显示“Ilikerabbit”后程序结束;若输入4,显示“Idon’tlikepig”后程序结束;若输入5,程序直接结束;若输入其它字符,显示“Youpressanerrorkey!”后程序结束。1)流程图2)源程序DATASEGMENTINFOR1DB0AH,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!:$YYYYNNNNN开始选项用户输入Al=1Al=2Al=3Al=4Al=5Youpressanerrorkey结束IlikepandaIlikecatIlikerabbitIlikedonotlikepigNDATAENDS;数据段结束CODESEGMENT;代码段开始ASSUMECS:CODE,DS:DATA;段寻址START:MOVAX,DATA;将data的数据存入ax中MOVDS,AX;为ds赋值MOVDX,OFFSETINFOR1;返回变量INFOR1段内偏移地址【运行后在屏幕上显示字符1-----------Panda:】MOVAH,09HINT21H;执行九号功能调用MOVDX,OFFSETINFOR2MOVAH,09HINT21HMOVDX,OFFSETINFOR3MOVAH,09HINT21HMOVDX,OFFSETINFOR4MOVAH,09HINT21HMOVDX,OFFSETINFOR5;返回变量INFOR5段内偏移地址【运行后在屏幕上显示字符5-----------EXIT:】MOVAH,09HINT21HMOVDX,OFFSETINFOR6MOVAH,09HINT21HMOVAH,01HINT21HCMPAL,'1'JEPandaCMPAL,'2'JECatCMPAL,'3'JERabbitCMPAL,'4'JEPigCMPAL,'5'JEPENDJMPOtherPanda:MOVDX,OFFSETINFOR7MOVAH,09HINT21HJMPPENDCat:MOVDX,OFFSETINFOR8MOVAH,09HINT21HJMPPENDRabbit:MOVDX,OFFSETINFOR9MOVAH,09HINT21HJMPPENDPig:MOVDX,OFFSETINFOR10MOVAH,09HINT21HJMPPENDOther:MOVDX,OFFSETINFOR11MOVAH,09HINT21HJMPPENDPEND:MOVAH,4CHINT21HCODEENDSENDSTART2、从键盘输入一字符,判断该字符是小写字母、大写字母、数字或其它字符。若输入为小写字母,显示“YouInputaLowercaseLetter!”;若输入为大写字母,显示“YouInputaUppercaseLetter!”;若输入为数字,显示“YouInputaDigit!”;若输入为其它字符,显示“YouInputOtherLetter!”。1、编程指导数字09的ASCII码为30H39H;大写字母的ASCII码为41H5AH,小写字母的ASCII码为61H7AH。本题目将字符分为小写字母、大写字母、数字及其它字符,根据键入字符的ASCII码值判断其所属类型,并显示相应的信息。字符串显示使用功能号为09H的DOS功能调用,接收键盘输入的单个字符使用功能号为01H的DOS功能调用。2、流程图及程序框图1)流程图2)源程序DATASEGMENTINFOR1DB0AH,0DH,PleasePressAnyKeytoinputaletter:$INFOR2DB0AH,0DH,Youinputalowercaseletter!$INFOR3DB0AH,0DH,YouinputaUppercaseletter!$INFOR4DB0AH,0DH,YouinputaDigit!$INFOR5DB0AH,0DH,YouinputOtherletter!$DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATA;显示信息“PleasePressAnyKeytoinputaletter”的指令序列以及接收从键盘输入一个字符的指令序列MOVDS,AXMOVDX,OFFSETINFOR1MOVAH,09HINT21HMOVAH,01HINT21HCMPAL,'0'YYYYYY显示提示信息“PleasePressAnyKeytoinputaletter”及功能号为1的接收键盘输入单个字符的指令序列开始结束素、、(AL)’0’(AL)=’9’(AL)’A’(AL)=’Z’(AL)’a’(AL)=’z’输入的是小写字母,显示信息输入的是大写字母,显示信息输入的是数字,显示有关信息输入的是其它字符,显示信息JBOTHERCMPAL,'9'JBEDIGITCMPAL,'A'JBOTHERCMPAL,'Z'JBEUPPERCMPAL,'a'JBOTHERCMPAL,'z'JBELOWERJMPPENDLOWER:;显示“YouInputaLowercaseLetter!”的指令序列MOVDX,OFFSETINFOR2MOVAH,09HINT21HJMPPEND;注意执行完一个分支后应使程序跳出UPPER:;显示“YouInputaUppercaseLetter”的指令序列MOVDX,OFFSETINFOR3MOVAH,09HINT21HJMPPENDDIGIT:;显示“YouInputaDigit!”的指令序列MOVDX,OFFSETINFOR4MOVAH,09HINT21HJMPPENDOTHER:;显示“YouInputOtherLetter!”的指令序列MOVDX,OFFSETINFOR5MOVAH,09HINT21HPEND:MOVAH,4CHINT21HCODEENDSENDSTART四、心得通过这次上机实验,我掌握了分支程序额设计方法,宏定义及宏调用的基本方法,了解了小写字母和大写字母的ASCII码表示及其转换方法,了解了数字及其他字符的ASCII码表示方法,进一步掌握了调试工具的使用方法。