分支程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告分支結(jié)構(gòu)程序設(shè)計(jì)
分支程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告分支結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)二分支程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康模?、分支程序的設(shè)計(jì)方法2、熟悉在PC機(jī)上建立、匯編、連接、調(diào)試和運(yùn)行匯編語(yǔ)言程序的過(guò)程二、實(shí)驗(yàn)環(huán)境:硬件環(huán)境IBM/PC及其兼容機(jī)軟件環(huán)境操作系統(tǒng)DOS編輯程序EDIT或其他編輯程序匯編程序MASM.EXE連接程序LINK.EXE調(diào)試程序DEBUG.EXE三、實(shí)驗(yàn)容:1、在屏幕上顯示如下信息:1 Panda2 Cat3 Rabbit4 Pig5 EXIT(Pleasechoose1,2,3,4or5)若輸入1,顯示“Ilikepanda”后程序結(jié)束;若輸入2,顯示“Ilikecat”后程序結(jié)束;若輸入3,顯示“Ilikerabbit”后程序結(jié)束;若輸入4,顯示“Idon'tlikepig”后程序結(jié)束;若輸入5,程序直接結(jié)束;若輸入其它字符,顯示“Youpressanerrorkey!”后程序結(jié)束。1)流程圖YYYYYNNNN開(kāi)始選項(xiàng)用戶(hù)輸入Al=1Al=2Al=3Al=4Al=5Youpressanerrorkey結(jié)束IlikepandaIlikecatIlikerabbitIlikedonotlikepig2)源程序DATASEGMENTINFOR1DB0AH,0DH,"1Panda:$"INFOR2DB0AH,0DH,"2Cat:$"INFOR3DB0AH,0DH,"3Rabbit;$"INFOR4DB0AH,0DH,"4pig:$"INFOR5DB0AH,0DH,"5EXIT:$"INFOR6DB0AH,0DH,"(pleasechoose1,2,3,4or5-):$"INFOR7DB0AH,0DH,"IlikePanda:$"INFOR8DB0AH,0DH,"IlikeCat:$"INFOR9DB0AH,0DH,"IlikeRabbit;$"INFOR10DB0AH,0DH,"Ilikepig:$"INFOR11DB0AH,0DH,"youpressanerrorkey!:$"DATAENDS數(shù)據(jù)段結(jié)束CODESEGMEN代碼段開(kāi)始ASSUMECS:CODE,DS:DAT段尋址START:MOVAX,DAT將data的數(shù)據(jù)存入ax中MOVDS,AX為ds賦值MOVDX,OFFSETINFO;返回變量INFOR1段偏移地址【運(yùn)行后在屏幕上顯示字符1Panda:】MOVAH,09HINT21H;執(zhí)行九號(hào)功能調(diào)用MOVDX,OFFSETINFOR2MOVAH,09HINT21HMOVDX,OFFSETINFOR3MOVAH,09HINT21HMOVDX,OFFSETINFOR4MOVAH,09HINT21HMOVDXQFFSETINFO;返回變量INFOR5段偏移地址【運(yùn)行后在屏幕上顯示字符5EXIT:】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、從鍵盤(pán)輸入一字符,判斷該字符是小寫(xiě)字母、大寫(xiě)字母、數(shù)字或其它字符。若輸入為小寫(xiě)字母,顯示“YouInputaLowercaseLetter!”;若輸入為大寫(xiě)字母,顯示“YouInputaUppercaseLetter!”;若輸入為數(shù)字,顯示“YouInputaDigit!”;若輸入為其它字符,顯示“YouInputOtherLetter!”。編程指導(dǎo)數(shù)字0?9的ASCII碼為30H?39H;大寫(xiě)字母的ASCII碼為41H?5AH小寫(xiě)字母的ASCII碼為61H?7AH本題目將字符分為小寫(xiě)字母、大寫(xiě)字母、數(shù)字及其它字符,根據(jù)鍵入字符的ASCII碼值判斷其所屬類(lèi)型,并顯示相應(yīng)的信息。字符串顯示使用功能號(hào)為09H的DOS功能調(diào)用,接收鍵盤(pán)輸入的單個(gè)字符使用功能號(hào)為01H的DOS功能調(diào)用。YYYYYYYY顯示提示信息“PleasePressAnyKeytoinputaletter及功能號(hào)為1的接收鍵盤(pán)輸入單個(gè)字符的指令序列開(kāi)始結(jié)束素、(AL)<'0'(AL)<='9'(AL)<'A'(AL)<='Z'(AL)<'a'(AL)<='z'輸入的是小寫(xiě)字母,顯示信息輸入的是大寫(xiě)字母,顯示信息輸入的是數(shù)字,顯示有關(guān)信息輸入的是其它字符,顯示信息流程圖2)源程序DATASEGMENTINFOR1DB0AH,0DH,"PleasePressAnyKeytoinputaletter:$"INFOR2DB0AH,0DH,"Youinputalowercaseletter!$"INFOR3DB0AH,0DH,"YouinputaUppercaseletter!$"INFOR4DB0AH,0DH,"YouinputaDigit!$"INFOR5DB0AH,0DH,"YouinputOtherletter!$"DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA的指令序列以及接收從鍵START:MOVAX,DATA顯示信息“PleasePressAnyKeytoinputaletter盤(pán)輸入一個(gè)字符的指令序列MOVDS,AXMOVDX,OFFSETINFOR1MOVAH,09HINT21HMOVAH,01HINT21HCMPAL,'0'JBOTHERCMPAL,'9'JBEDIGITCMPAL,'A'JBOTHERCMPAL,'Z'JBEUPPERCMPAL,'a'JBOTHERCMPAL,'z'JBELOWERJMPPENDLOWER;:顯示“YouInputaLowercaseLetter!”的指令序列MOVDX,OFFSETINFOR2MOVAH,09HINT21HJMPPEND注意執(zhí)行完一個(gè)分支后應(yīng)使程序跳出UPPER;:顯示“YouInputaUppercaseLetter”的指令序列MOVDX,OFFSETINFOR3MOVAH,09HINT21HJMPPENDDIGIT:;顯示“YouInputaDigit!”的指令序列MOVDX,OFFSETINFOR4MOVAH,09HINT21HJMPPENDOTHER;:顯示“YouInputOtherLetter!”的指令序列MOVDX,OFFSETINFOR5MOVAH,09HINT21HPEND:MOVAH,4CHINT21HCODEENDSENDSTART四、通過(guò)這次上機(jī)實(shí)驗(yàn),我掌握了分支程序額設(shè)計(jì)方法,宏定義及宏調(diào)用的基本方法,了解了小寫(xiě)字母和大寫(xiě)字母的ASCII碼表示及其轉(zhuǎn)換方法,了解了數(shù)字及其他字符的ASCII碼表示方法,進(jìn)步掌握了調(diào)試工具的使用方法。