微機原理分支程序設(shè)計實驗
真誠為您提供優(yōu)質(zhì)參考資料,若有不當(dāng)之處,請指正。 2.3 分支程序設(shè)計實驗2.3.1 實驗?zāi)康?、 掌握分支程序的設(shè)計方法。2、 掌握宏定義及宏調(diào)用的基本方法。3、 了解小寫和大寫字母的ASCII碼表示及其轉(zhuǎn)換方法。了解數(shù)字及其它字符在的ASCII碼表示方法。4、進一步掌握調(diào)試工具的使用方法2.3.2 實驗預(yù)習(xí)要求1、 復(fù)習(xí)比較指令、條件轉(zhuǎn)移指令的用法。2、 復(fù)習(xí)宏定義及宏調(diào)用的基本方法。3、 根據(jù)“2.3.3 實驗內(nèi)容”中給出的流程圖和程序框架編寫源程序,以便上機調(diào)試。4、 程序框架中顯示提示信息的指令序列用宏調(diào)用實現(xiàn)。5、 從“2.3.4 實驗習(xí)題”中任選一道題目,編寫源程序,以便上機調(diào)試。2.3.3 實驗內(nèi)容從鍵盤輸入一字符,判斷該字符是小寫字母、大寫字母、數(shù)字或其它字符。若輸入為小寫字母,顯示“You Input a Lowercase Letter!”;若輸入為大寫字母,顯示“You Input a Uppercase Letter!”; 若輸入為數(shù)字,顯示“You Input a Digit!”; 若輸入為其它字符,顯示“You Input Other Letter!”。1、 編程指導(dǎo)數(shù)字09的ASCII碼為30H39H;大寫字母的ASCII碼為41H5AH,小寫字母的ASCII碼為61H7AH。本題目將字符分為小寫字母、大寫字母、數(shù)字及其它字符,根據(jù)鍵入字符的ASCII碼值判斷其所屬類型,并顯示相應(yīng)的信息。字符串顯示使用功能號為09H的DOS功能調(diào)用,接收鍵盤輸入的單個字符使用功能號為01H的DOS功能調(diào)用。YYYYYY顯示提示信息“Please Press Any Key to input a letter”及功能號為1的接收鍵盤輸入單個字符的指令序列開始結(jié)束素、(AL)<0(AL)<=9(AL)<A(AL)<=Z(AL)<a(AL)<=z輸入的是小寫字母,顯示信息輸入的是大寫字母,顯示信息輸入的是數(shù)字,顯示有關(guān)信息輸入的是其它字符,顯示信息2、 流程圖及程序框圖(1) 流程圖(2) 實驗代碼:DATA SEGMENT INFOR1 DB 0AH,0DH,"Please Press Any Key to input a letter:$" INFOR2 DB 0AH,0DH,"You Input a Lowercase Letter!$" INFOR3 DB 0AH,0DH,"You Input a Uppercase Letter!$"INFOR4 DB 0AH,0DH,"You Input a Digit!$"INFOR5 DB 0AH,0DH,"You Input Other Letter!$"DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV DX,OFFSET INFOR1 MOV AH,09HINT 21H CMP AL,'0'JB OTHERCMP AL,'9'JBE DIGITCMP AL,'A'JB OTHERCMP AL,'Z'JBE UPPERCMP AL,'a'JB OTHERCMP AL,'z'JBE LOWERJMP PENDLOWER:MOV DX,OFFSET INFOR2MOV AH,09HINT 21HJMP PENDUPPER:MOV DX,OFFSET INFOR3MOV AH,09HINT 21HJMP PENDDIGIT:MOV DX,OFFSET INFOR4MOV AH,09HINT 21HJMP PENDOTHER:MOV DX,OFFSET INFOR5MOV AH,09HINT 21HJMP PENDPEND:MOV AH,4CHINT 21HCODE ENDSEND START(3)實驗結(jié)果:2.3.4 實驗習(xí)題1、 在屏幕上顯示信息“Are you really want to exit?”,然后從鍵盤輸入一個字符,若輸入“Y”或“y”,顯示“Thank you for your using!”后程序結(jié)束;若輸入“N”或“n”,顯示“Lets continue!”后程序結(jié)束;若輸入其它字符,顯示“You press an error key!”后程序結(jié)束(要求盡量使用宏指令以便使源程序更加簡潔)。(1)實驗代碼:DATA SEGMENTINFOR1 DB 0AH,0DH,"Are you really want to exit?$"INFOR2 DB 0AH,0DH,"Thank you for your using !$"INFOR3 DB 0AH,0DH,"Let's continue !$"INFOR4 DB 0AH,0DH,"You press an error key !$"DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET INFOR1MOV AH,09HINT 21HMOV AH,01HINT 21HCMP AL,'Y'JE YESCMP AL,'y'JE YESCMP AL,'N'JE NOCMP AL,'n'JE NOJMP PENDYES:MOV DX,OFFSET INFOR2MOV AH,09HINT 21HJMP PENDNO:MOV DX,OFFSET INFOR3MOV AH,09HINT 21HJMP PENDOTHER:MOV DX,OFFSET INFOR4MOV AH,09HINT 21HJMP PENDPEND:MOV AH,4CHINT 21HCODE ENDSEND START (2) 實驗結(jié)果:2、 在屏幕上顯示如下信息: 1-Panda 2-Cat 3-Rabbit 4-Pig 5-EXIT (Please choose 1,2,3,4or 5)-若輸入1,顯示“I like panda”后程序結(jié)束;若輸入2,顯示“I like cat”后程序結(jié)束;若輸入3,顯示“I like rabbit”后程序結(jié)束;若輸入4,顯示“I dont like pig”后程序結(jié)束;若輸入5,程序直接結(jié)束;若輸入其它字符,顯示“You press an error key!”后程序結(jié)束(要求盡量使用宏指令以便使源程序更加簡潔)。(1)代碼:DATA SEGMENTINFOR1 DB 0AH,0DH,"1-Panda$"INFOR2 DB 0AH,0DH,"2-Cat$"INFOR3 DB 0AH,0DH,"3-Rabbit$"INFOR4 DB 0AH,0DH,"4-Pig$"INFOR5 DB 0AH,0DH,"5-EXIT$"INFOR6 DB 0AH,0DH,"I like Panda$"INFOR7 DB 0AH,0DH,"I like Cat$"INFOR8 DB 0AH,0DH,"I like Rabbit$"INFOR9 DB 0AH,0DH,"I don't like Pig$"DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET INFOR1MOV AH,09HINT 21HMOV DX,OFFSET INFOR2MOV AH,09HINT 21HMOV DX,OFFSET INFOR3MOV AH,09HINT 21HMOV DX,OFFSET INFOR4MOV AH,09HINT 21HMOV DX,OFFSET INFOR5MOV AH,09HINT 21HMOV AH,01HINT 21HCMP AL,'1'JE ACMP AL,'2'JE BCMP AL,'3'JE CCMP AL,'4'JE DCMP AL,'5'JE PEND;JMP PENDA:MOV DX,OFFSET INFOR6MOV AH,09HINT 21HJMP PENDB:MOV DX,OFFSET INFOR7MOV AH,09HINT 21HJMP PENDC:MOV DX,OFFSET INFOR8MOV AH,09HINT 21HJMP PENDD:MOV DX,OFFSET INFOR9MOV AH,09HINT 21HJMP PENDPEND:MOV AH,4CHINT 21HCODE ENDSEND START(2)實驗結(jié)果:2.3.5 實驗小結(jié)通過本次實驗,我掌握了匯編分支程序的設(shè)計方法,了解了小寫和大寫字母的ASCII碼的轉(zhuǎn)換方法,以及數(shù)字及其他的字符在ASCII碼的表示方法。實驗中遇到了一些問題,例如:輸入源代碼時,一定要按照語句格式與語法來寫,并且少了空格會導(dǎo)致編譯錯誤;一個完整的匯編程序只能返回一次DOS等,返回DOS語句后面的匯編程序不會執(zhí)行等。7 / 7