《微机原理分支程序设计实验(共11页).doc》由会员分享,可在线阅读,更多相关《微机原理分支程序设计实验(共11页).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上2.3 分支程序设计实验2.3.1 实验目的1、掌握分支程序的设计方法。2、掌握宏定义及宏调用的基本方法。3、了解小写和大写字母的ASCII 码表示及其转换方法。了解数字及其它字符在的ASCII 码表示方法。4、进一步掌握调试工具的使用方法2.3.2 实验预习要求1、复习比较指令、条件转移指令的用法。2、复习宏定义及宏调用的基本方法。3、根据“2.3.3 实验内容”中给出的流程图和程序框架编写源程序,以便上机调试。4、程序框架中显示提示信息的指令序列用宏调用实现。5、从“2.3.4 实验习题”中任选一道题目,编写源程序,以便上机调试。2.3.3 实验内容从键盘输入一字
2、符,判断该字符是小写字母、大写字母、数字或其它字符。若输入为小写字母,显示“You Input a Lowercase Letter!”;若输入为大写字母,显示“You Input a Uppercase Letter!”; 若输入为数字,显示“You Input a Digit!”; 若输入为其它字符,显示“You Input Other Letter!”。1、编程指导数字09的ASCII 码为30H 39H ;大写字母的ASCII 码为41H 5AH ,小写字母的ASCII 码为61H 7AH 。本题目将字符分为小写字母、大写字母、数字及其它字符,根据键入字符的ASCII 码值判断其所属类
3、型,并显示相应的信息。字符串显示使用功能号为09H 的DOS 功能调用,接收键盘输入的单个字符使用功能号为01H 的DOS 功能调用。2、流程图及程序框图(1)流程图 (2)实验代码:DATA SEGMENTINFOR1 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!$INFOR
4、5 DB 0AH,0DH,You Input Other Letter!$DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DA TAMOV DS,AXMOV DX,OFFSET INFOR1MOV AH,09HINT 21HCMP AL,0JB OTHERCMP AL,9JBE DIGITCMP AL,AJB OTHERCMP AL,ZJBE UPPERCMP AL,aJB OTHERCMP AL,zJBE LOWERJMP PENDLOWER:MOV DX,OFFSET INFOR2MOV AH,09HINT 21HJMP P
5、ENDUPPER: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)实验结果: 2.3.4 实验习题1、 在屏幕上显示信息“Are you really want to exit?”,然后从键盘输入一个字符,若输入“Y ”或“y ”,显示“Thank you for y
6、our using!”后程序结束;若输入“N ”或“n ”,显示“Lets continue!”后程序结束;若输入其它字符,显示“You press an error key!”后程序结束(要求尽量使用宏指令以便使源程序更加简洁)。(1)实验代码:DA TA SEGMENTINFOR1 DB 0AH,0DH,Are you really want to exit?$INFOR2 DB 0AH,0DH,Thank you for your using !$INFOR3 DB 0AH,0DH,Lets continue !$INFOR4 DB 0AH,0DH,You press an error
7、key !$DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET INFOR1MOV AH,09HINT 21HMOV AH,01HINT 21HCMP AL,YJE YESCMP AL,yJE YESCMP AL,NJE NOCMP AL,nJE NOJMP PENDYES:MOV DX,OFFSET INFOR2MOV AH,09HINT 21HJMP PENDNO:MOV DX,OFFSET INFOR3MOV AH,09HINT 21HJMP PENDOTHER:MOV D
8、X,OFFSET INFOR4MOV AH,09HINT 21HJMP PENDPEND:MOV AH,4CHINT 21HCODE ENDSEND START(2) 实验结果: 2、 在屏幕上显示如下信息:1-Panda2-Cat3-Rabbit4-Pig5-EXIT(Please choose 1,2,3,4or 5-若输入1,显示“I like panda”后程序结束;若输入2,显示“I like cat”后程序结束;若输入3,显示“I like rabbit”后程序结束;若输入4,显示“I dont like pig”后程序结束;若输入5,程序直接结束;若输入其它字符,显示“You p
9、ress an error key!”后程序结束(要求尽量使用宏指令以便使源程序更加简洁)。(1)代码:DA TA 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 0A
10、H,0DH,I dont like Pig$ DA TA ENDSCODE SEGMENTASSUME 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 A
11、L,1JE ACMP AL,2JE BCMP AL,3JE CCMP AL,4JE DCMP AL,5JE PEND;JMP PENDA:MOV DX,OFFSET INFOR6MOV AH,09HINT 21H JMP PEND B:MOV DX,OFFSET INFOR7 MOV AH,09H INT 21H JMP PEND C:MOV DX,OFFSET INFOR8 MOV AH,09H INT 21H JMP PEND D:MOV DX,OFFSET INFOR9 MOV AH,09H INT 21H JMP PEND PEND:MOV AH,4CH INT 21H CODE ENDS END START (2)实验结果: 2.3.5 实验小结 通过本次实验,我掌握了汇编分支程序的设计方法,了解了小写和大写字母的 ASCII 码的转换方法,以及数字及其他的字符在 ASCII 码的表示方法。实验中遇到了一些问题, 例如:输入源代码时,一定要按照语句格式与语法来写,并且少了空格会导致编译错误; 一个完整的汇编程序只能返回一次 DOS 等,返回 DOS 语句后面的汇编程序不会执行等。 专心-专注-专业
限制150内