资源描述:
《微机实验 字符串匹配程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、实验题目:字符串匹配程序实验二、实验目的:掌握提示信息的使用方法及键盘输入信息的用法。三、实验内容编写程序,实现两个字符串比较。如果两个字符串中有一个字符相同,显示“MATCH”,否则,显示“NOMATCH”。四、程序流程图图字符串匹配程度流程图五、试验步骤5ZQ第页(1)打开集成实验环境,编写汇编语言程序。(2)编写完成后,保存、编译、修改错误代码。(3)编译成功后,运行程序,检验程序。汇编程序如下:CRLFMACRO;宏定义MOVAH,02H;AH=02HMOVDL,0DH;DL=0DHINT21H;系统
2、功能调用,输出回车字符MOVAH,02H;AH=02HMOVDL,0AH;DL=0AINT21H;系统功能调用,输出换行符ENDM;宏定义结束DATASEGMENT;定义数据段MESS1DB'MATCH',0DH,0AH,'$';定义8个数据储存单元MESS2DB'NOMATCH',0DH,0AH,'$';定义11个数据储存单元MESS3DB'INPUTSTRING1:',0DH,0AH,'$';定义17个数据储存单元MESS4DB'INPUTSTRING2:',0DH,0AH,'$';定义17个数据储存单元MA
3、XLEN1DB81;定义最大长度为81个字节ACTLEN1DB?STRING1DB81DUP(?);定义STRING1长度为81MAXLEN2DB81;定义最大长度为81ACTLEN2DB?STRING2DB81DUP(?);定义STRING2长度为81DATAENDS;数据段结束STACKSEGMENTSTACK;定义堆栈段STADB50DUP(?);定义50个数据储存单元TOPEQULENGTHSTA;给TOP赋值50STACKENDS;堆栈段结束CODESEGMENT;定义代码段ASSUMECS:CODE,
4、DS:DATA,ES:DATA,SS:STACK;定义段基址START:MOVAX,DATAMOVDS,AX;把DATA的首地址赋给DSMOVES,AX;把DATA的首地址赋给ESMOVAX,STACKMOVSS,AX;把STACK的首地址赋给SSMOVSP,TOP;给SP赋值50MOVAH,09H;AH=09HMOVDX,OFFSETMESS3;把MESS3的偏移地址赋给DXINT21H;系统功能调用MOVAH,0AH;AH=0AHMOVDX,OFFSETMAXLEN1;把MAXLEN1的偏移地址赋给DXINT
5、21H;系统功能调用CRLF5ZQ第页MOVAH,09H;AH=09HMOVDX,OFFSETMESS4;把MESS4的偏移地址赋给DXINT21H;系统功能调用MOVAH,0AH;AH=0AHMOVDX,OFFSETMAXLEN2;把MAXLEN2的偏移地址赋给DXINT21H;系统功能调用CRLFCLDMOVSI,OFFSETSTRING1;把STRING1的偏移地址赋给SIMOVCL,[SI-1];把SI-1内的内容赋给CLMOVCH,00H;CH=00HKKK:MOVDI,OFFSETSTRING2;把S
6、TRING2的偏移地址赋给DIPUSHCX;将CX压入堆栈MOVCL,[DI-1];将DI-1内的的内容赋给CLMOVCH,00H;CH=00HMOVAL,[SI];将SI内的内容赋给ALMOVDX,DI;将DI赋给DXREPNZSCASB;寻找第一个相同字符JZGGG;ZF=0执行GGG否则顺序执行INCSI;SI自加1POPCX;弹出CXLOOPKKK;跳转到KKK循环MOVAH,09HMOVDX,OFFSETMESS2INT21H;系统功能调用JMPPPP;跳转到PPPGGG:MOVAH,09HMOVDX,
7、OFFSETMESS1INT21H;输出MESS1PPP:MOVAX,4C00HINT21H;带返回码结束CODEENDS;代码段结束ENDSTART;整个程序结束一、实验结果5ZQ第页一、思考题在程序运行中,键盘输入的两个字符分别储存在什么地方?答:第一个字符储存在STRING1中;第二个字符储存在STRING2中。5ZQ第页5ZQ第页