资源描述:
《微机原理字符串匹配.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、大学学生实验报告(2010—2011学年第二学期)课程名称:微型计算机原理与接口技术开课实验室:2052011年5月30日年级、专业、班电信091学号姓名成绩实验项目名称字符匹配程序指导教师教师评语教师签名:年月日一、实验目的、要求1.掌握提示信息的使用方法及键盘输入信息的用法。二、实验原理及基本技术路线图或实验内容1.编写程序,实现两个字符串比较。如果两个字符串中有一个字符相同,显示“MATCH”,否则,显示“NOMATCH”。2.程序框图段寄存器及堆栈初始化显示“请输入字符串1”使用INT21H的0A号子功能,接收键入的字符串显示“请
2、输入字符串2”指针SI指向串1的首字符SI指向的字符串和串2中所有字符作比较Y相等?NSI+1,指向串1中下一字符N串1中的字符已取完?Y显示“NOMATCH”显示“MATCH”返回DOS三、所用仪器、材料和软件软件名称为:MASMFORWindows集成实验环境2009.7四、实验方法、步骤根据实验的目的在该环境中编写出源代码,在进行调试、运行后,看能否得出结果。五、源码程序编制及分析注释程序清单及注释CRLFMACRO;宏定义MOVAH,02H;AH=02HMOVDL,0DH;DL=0DHINT21H;系统功能调用来输出个回车字符MO
3、VAH,02H;AH=02HMOVDL,0AH;DL=0AHINT21H;系统功能调用来输出一个换行符ENDM;宏定义结束DATASEGMENT;数据段定义MESS1DB'MATCH',0DH,0AH,'$';定义8个存储单元的数据MESS2DB'NOMATCH',0DH,0AH,'$';定义11个存储单元的数据MESS3DB'INPUTSTRING1:',0DH,0AH,'$';定义17个存储单元的数据MESS4DB'INPUTSTRING2:',0DH,0AH,'$';定义17个存储单元的数据MAXLEN1DB81;字符串1的缓冲区最
4、大字符数ACTLEN1DB?;字符串1的实际输入字符的个数STRING1DB81DUP(?);用来存储字符串1的81个单元MAXLEN2DB81;字符串2的缓冲区最大字符数ACTLEN2DB?;用来存放字符串2的实际字符个数STRING2DB81DUP(?);用来存储字符串2的81个单元DATAENDS;数据段定义结束STACKSEGMENTSTACK;堆栈段定义STADB50DUP(?);在堆栈段定义50个空字符TOPEQULENGTHSTA;TOP=50STACKENDS;堆栈段定义结束CODESEGMENT;代码段定义ASSUMEC
5、S:CODE,DS:DATA,ES:DATA,SS:STACK;段分配START:MOVAX,DATA;MOVDS,AX;将数据段的段地址赋给DSMOVES,AX;将数据段的段地址赋给ESMOVAX,STACK;MOVSS,AX;将堆栈段的段地址赋给SSMOVSP,TOP;SP=50MOVAH,09H;AH=09HMOVDX,OFFSETMESS3;INT21H;输出'INPUTSTRING1:MOVAH,0AHMOVDX,OFFSETMAXLEN1INT21H;(DS:DX)=最大字符数,(DS:DX+1)=实际的字符数CRLFMOVA
6、H,09HMOVDX,OFFSETMESS4INT21H;输出INPUTSTRING2:MOVAH,0AHMOVDX,OFFSETMAXLEN2INT21H;(DS:DX)=最大字符数,(DS:DX+1)=实际的字符数CRLF;宏调用CLD;DF=0,则串操作有低地址向高地址方向进行MOVSI,OFFSETSTRING1;将字符串1的偏移地址赋给SIMOVCL,[SI-1];将字符串1的字符实际个数赋给CLMOVCH,00H;CH=00HKKK:MOVDI,OFFSETSTRING2;将字符串2的偏移地址赋给DIPUSHCX;将CX中的值
7、即为字符串1的字符个数压入堆栈MOVCL,[DI-1];将字符串2的字符个数赋给CLMOVCH,00H;CH=00HMOVAL,[SI];取出字符串1的第一个字符给ALMOVDX,DI;将字符串2的第一个字符赋给DXREPNZSCASB;CX!=0(没有查完)和ZF=0(不相等)时重复JZGGG;ZF=1,表示已经搜到了相等的字符,则转出INCSI;SI=SI+1POPCX;弹出原先字符串1中剩下未被进行比较的字符个数LOOPKKK;CX-1!=0则继续返回到子过程KKKMOVAH,09HMOVDX,OFFSETMESS2INT21H;否
8、则CX=0时的系统功能调用将显示NOMATCHJMPPPP;将跳转到PPPGGG:MOVAH,09HMOVDX,OFFSETMESS1INT21H;系统功能调用将显示MATCHPPP:MOVA