资源描述:
《微机原理实验三字符串匹配程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三字符串匹配程序教学目标:通过教学让学生掌握显示提示信息的方法及接收键盘输入信息的方法。重点、难点:重点:字符串匹配的算法,用INT21H的09号子功能显示提示信息,用INT21H的0A号子功能接收字符难点:用INT21H的0A号子功能接收字符课时安排:2学时教学过程:讲解实验过程一实验目的:掌握显示提示信息的方法及接收键盘输入信息的方法二实验内容:编写程序,实现两个字符串的比较。如相同,则显示“MATCH”,否则,显示”NOMATCH”.三程序框图(讲解流程图,介绍编写程序的思路)入口段寄存器及堆栈初始化显示“请输入字符串1“使用INT21H的0AH号子功能,接收键入的字符串显示“请输入
2、字符串2“指针SI指向串1的首字符SI指向的字符和串2中所有字符作比较相等SI加1,指向串1中下一字符串1中的字符已取完显示“NOMATCH”显示“MATCH”返回DOS四实验原理1、讲解DB、DUP、EQU等伪指令的功能以及使用格式2、讲解INT21H的09H子功能的功能、工作情况以及使用格式3、讲解INT21H的0AH子功能的功能、工作情况以及使用格式4、讲解串扫描指令SCASB的功能以及使用格式5、入栈、出栈指令PUSH、POP的使用情况五实验参考程序CRLFMACROMOVAH,02HMOVDL,0DHINT21HMOVAH,02HMOVDL,0AHINT21HENDMDATASEGM
3、ENTMESS1DB'MATCH',0DH,0AH,'$'MESS2DB'NOMATCH',0DH,0AH,'$'MESS3DB'INPUTSTRING1:',0DH,0AH,'$'MESS4DB'INPUTSTRING2:',0DH,0AH,'$'MAXLEN1DB81ACTLEN1DB?STRING1DB81DUP(?)MAXLEN2DB81ACTLEN2DB?STRING2DB81DUP(?)DATAENDSSTACKSEGMENTSTADB20DUP(?)TOPEQULENGTHSTASTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,
4、ES:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,DATAMOVES,AXMOVAX,STACKMOVSS,AXMOVSP,TOP;段寄存器及堆栈初始化MOVAH,09HMOVDX,OFFSETMESS3INT21H;显示输入提示1MOVAH,0AHMOVDX,OFFSETMAXLEN1INT21H;接收键入的字符串1CRLF;回车换行MOVAH,09HMOVDX,OFFSETMESS4INT21H;显示输入提示2MOVAH,0AHMOVDX,OFFSETMAXLEN2INT21H;接收键入的字符串2CRLFCLDMOVSI,OFFSETSTRING1MOVCL,[SI
5、-1]MOVCH,00H;字符串1的实际字符数送CXKKK:MOVDI,OFFSETSTRING2PUSHCXMOVCL,[DI-1]MOVCH,00H;字符串2的实际字符数送CXMOVAL,[SI]MOVDX,DIREPNZSCASB;将串1中的一个字符和串2中的所有字符作比较JZGGG;比较相等转GGGINCSI;从串1中取下一个字符POPCXLOOPKKKMOVAH,09HMOVDX,OFFSETMESS2INT21H;显示‘NOMATCH'JMPPPPGGG:MOVAH,09HMOVDX,OFFSETMESS1INT21H;显示'MATCH'PPP:MOVAX,4C00HINT21H;
6、返回DOSCODEENDSENDSTART六实验步骤1、按实验要求编写程序2、汇编连接程序生成可执行文件3、执行程序观察结果七、拓展练习编写程序,实现两个字符串的比较。如字符长度相同并且对应字符顺序相同,则显示“MATCH”,否则,显示“NOMATCH”。