分支程序设计实验报告分支结构程序设计.....实验二分支程序设计一、实验目的: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)流程图YYYYYNNNNN开始选项用户输入Al=1Al=2Al=3Al=4Al=5Youpressanerrorkey结束IlikepandaIlikecatIlikerabbitIlikedonotlikepig2)源程序DATA__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;$"__DB0AH,0DH,"Ilikepig:$"__DB0AH,0DH,"youpressanerrorkey!:$"DATAENDS;数据段结束CODE__;代码段开始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,OFFSET__MOVAH,09HINT21HJMPPENDOther:MOVDX,OFFSET__MOVAH,09HINT21HJMPPENDPEND:MOVAH,4CHINT21HCODEENDSENDSTART2、从键盘输入一字符,判断该字符是小写字母、大写字母、数字或其它字符。若输入为小写字母,显示“YouInputaLowercaseLetter!”;若输入为大写字母,显示“YouInputaUppercaseLetter!”;若输入为数字,显示“YouInputaDigit!”;若输入为其它字符,显示“YouInputOtherLetter!”。编程指导数字0?9的ASCII码为30H?39H;大写字母的ASCII码为41H?5AH,小写字母的ASCII码为61H?7AH。本题目将字符分为小写字母、大写字母、数字及其它字符,根据键入字符的ASCII码值判断其所属类型,并显示相应的信息。字符串显示使用功能号为09H的DOS功能调用,接收键盘输入的单个字符使用功能号为01H的DOS功能调用。YYYYYYYY显示提示信息“PleasePressAnyKeytoinputaletter”及功能号为1的接收键盘输入单个字符的指令序列开始结束素、、(AL)’0’(AL)=’9’(AL)’A’(AL)=’Z’(AL)’a’(AL)=’z’输入的是小写字母,显示信息输入的是大写字母,显示信息输入的是数字,显示有关信息输入的是其它字符,显示信息流程图2)源程序DATA__INFOR1DB0AH,0DH,"PleasePressAnyKeytoinputaletter:$"INFOR2DB0AH,0DH,"Youinputalowercaseletter!$"INFOR3DB0AH,0DH,"YouinputaUppercaseletter!$"INFOR4DB0AH,0DH,"YouinputaDigit!$"INFOR5DB0AH,0DH,"YouinputOtherletter!$"DATAENDSCODE__ASSUMECS:CODE,DS:DATASTART:MOVAX,DATA;显示信息“PleasePressAnyKeytoinputaletter”的指令序列以及接收从键盘输入一个字符的指令序列MOVDS,AXMOVDX,OFFSETINFOR1MOVAH,09HINT21HMOVAH,01HINT21HCMPAL,'0'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码表示方法,进一步掌握了调试工具的使用方法。