微机原理实验三 字符串匹配程序.

合集下载

微机报告字符串匹配

微机报告字符串匹配

微机实验报告实验三循环程序的设计一、实验目的1、掌握提示信息的使用方法和键盘输入信息的用法;2、掌握循环程序的设计方法。

二、实验内容编写程序,从键盘分别输入两个字符串,进行比较,若相同,则显示‘MATCH’,否则,显示‘NO MATCH’。

三、实验原理强迫CPU重复执行一指令序列的程序结构是循环程序。

循环程序结构分成四部分:1、初始化部分2、循环处理部分3、循环控制部分4、结束部分四、程序流程图五、程序代码CRLF MACROMOV AH, 02HMOV DL, 0DHINT 21HMOV AH, 02HMOV DL, 0AHINT 21HENDMDATA SEGMENTMESS1 DB'INPUT STRING1:',0DH,0AH,'$'MESS2 DB'INPUT STRING2:',0DH,0AH,'$'MESS3 DB'NO MATCH',0DH,0AH,'$'MESS4 DB'MATCH',0DH,0AH,'$'MAXLEN1 DB 81ACTLEN1 DB ?STRING1 DB 81 DUP(?)MAXLEN2 DB 81ACTLEN2 DB ?STRING2 DB 81 DUP(?)DATA ENDSSTACK SEGMENT PARA STACK 'STACK'STA DB 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA, ES:DATA, SS:STACK START:MOV AX,DATAMOV DS,AXMOV ES, AXMOV AX,STACKMOV SS,AXMOV SP,TOPMOV AH,09HMOV DX,OFFSET MESS1INT 21HMOV AH, 0AHMOV DX,OFFSET MAXLEN1INT 21HCRLFMOV AH,09HMOV DX,OFFSET MESS2INT 21HMOV AH, 0AHMOV DX,OFFSET MAXLEN2INT 21HCRLFMOV SI,OFFSET ACTLEN1MOV BX,OFFSET ACTLEN2 ;字符串2长度单元首地址送BX MOV AL,[SI] ;字符串1长度送ALCMP AL,[BX] ;比较实际长度JNZ NOMA ;不等就跳转MOV CL,[BX] ;实际长度作为比较次数COM: INC SIINC BX ;SI,BX每循环依次加1MOV AL,[SI]CMP AL,[BX]JNZ NOMADEC CL ;CL每循环依次减1CMP CL,0JNZ COMMOV AH,09HMOV DX,OFFSET MESS4INT 21HJMP DENDNOMA:MOV AH,09HMOV DX,OFFSET MESS3INT 21HDEND:MOV AX, 4C00HINT 21HCODE ENDSEND START六、程序调试调试思路:1、生成exe文件;2、观察初始化是否正常;3、观察字符串是否输入;4、观察比较字符串长度处是否跳转(相同不跳,反之,不同就跳,不匹配);5、循环体中看是否比较了字符串长度次数,是否有不匹配跳出循环体;6、显示结果是否正常。

字符串匹配汇编语言程序设计

字符串匹配汇编语言程序设计

学号:课程设计题目字符串匹配汇编语言程序设计学院自动化学院班级电气1003班姓名申廷进指导教师徐腊梅2013 年01 月17 日课程设计任务书学生姓名:申廷进专业班级:电气1003班指导教师:徐腊梅工作单位:自动化学院题目: 字符串匹配汇编语言程序设计要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1)根据提示信息,从字符输入两个字符串,实现两个字符串的比较,如果两个字符串的字符只要有一个相同则显示“MATCH”,否则显示“NOMATCH”。

2)可连续输入字符进行比较,直至单击“Q”或“q”键退出程序。

时间安排:1.9 课设题目,设计内容;1.9—1.10 查资料,算法、方案设计。

1.10—1.13 (硬)软件设计1.14—1.15 调试程序1.16—1.17 写课设报告1.18 答辩指导教师签名:年月日系主任(或责任教师)签名:年月日1 设计总体方案 (2)1.1 设计目的 (2)1.2 设计要求及其条件 (2)1.3 设计方案 (2)2 程序流程图分析 (3)2.1 转移流程图的分析 (3)2.2 流程图总体分析 (3)3 程序段落的说明 (5)3.1 换行回车键的定义 (5)3.2 提示信息和字符串的定义 (5)3.3 DOS功能和部分指令的说明 (6)4 程序调试说明、结果记录与分析 (7)4.1 程序调试说明 (7)4.2 调试结果说明 (7)4.3 分析结果 (9)5心得体会 (9)参考文献 (11)附件 (12)微型计算机简称微机,由于其具备人脑的某些功能,所以也称其为微电脑。

是由大规模集成电路组成的、体积较小的电子计算机。

它是以微处理器为基础,配以内存储器及输入输出接口电路和相应的辅助电路而构成的裸机。

把微型计算机集成在一个芯片上即构成单片微型计算机。

学习微机课程,主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言、设计以及微型计算机各个组成部分,而汇编语言是其中一大板块。

北京理工大学汇编语言实验报告实验三字符串操作实验

北京理工大学汇编语言实验报告实验三字符串操作实验

北京理工大学汇编语言实验报告实验三字符串操作实验实验三字符串操作实验一、实验目的1)熟悉串操作指令的功能与应用;2)掌握串操作指令的寻址方式及使用方法,编写常用的字符串处理程序;3)了解汇编语言字符串处理基本流程;二、实验软硬件环境1)硬件环境:惠普64位一体化计算机及局域网; 2)软件环境:windows 8,红蜘蛛管理系统,MASM for Win dows三、实验相关知识1)字符串操作流程SI寄存器保存源串首地址;DI寄存器保存目的串首地址;CX寄存器保存字符串长度;CLD或STD指令设置字符串处理方向;2)重复前缀指令重复次数由计数寄存器CX中存放的值决定,指令每重复执行一次,计数器CX中值减1,当CX 中值减至0时,停止重复执行,继续执行下一条指令。

寄存器的E内容条件为复前罡重复与操作直配合工作的字符串处理指令有MOVSSTOS^ LODS当REPE/REP判断计数寄存器的内容CX是否为0或ZF=O(即比较的两个操作数不等)亠只要满足一个则重复执行结束,否则继续执行。

可以与REPE/REP配合工作的串指令有CMP和SCAS0或體茴比较P判个操数数相等的内容要满足一个则重复执行结束,否则继续执行。

可以与REPE/REP配合工作的串指令有CMPS口SCAS3)字符串操作指令lodsb、lodsw :把DS:SI 指向的存储单元中的数据装入AL或AX然后根据DF标志增减SI ;stosb、stosw :把AL 或AX 中的数据装入ES:DI指向的存储单元,然后根据DF标志增减DI ;movsb movsw把DS:SI 指向的存储单元中的数据装入ES:DI指向的存储单元中,然后根据DF 标志分别增减SI和DI ;scasb、scasw:把AL或AX中的数据与ES:DI指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI ;cmpsb cmpsw把DS:SI指向的存储单元中的数据与ES:DI指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI ;rep :重复其后的串操作指令。

自-微机原理实验_字符串处理程序

自-微机原理实验_字符串处理程序

实验课程名称微机原理实验实验项目名称字符串处理程序实验指导老师学生姓名学院理学院专业电子信息科学与技术年级2008级(一)班学号实验时间2010年12月20日总成绩ﻩﻩ①INT21HPOP AXMOVDL, ALORDL,30HMOV AH,2INT 21HMOV AH,4CHINT 21HCODEﻩENDSEND START编译源程序:如下,发现地29行有错误。

用EDIT命令找到错误地方,并进行修改,如下图所示:修改后保存程序,重新编译:重新编译后程序没有错误,用反汇编查看指令代码:如下图所示:运行程序,验证程序设计结果的正确性。

从键盘上输入字符串“ADKJjkdjfljdeowekdjg”,共二十个字符,其中小写字母十六个,显示结果如下:由运行结果可知,程序运行正确,实现了设计要求。

②实验2课参考教材第五章练习10的解法,但要编写一个在同一个字符串中删除字符,并将其余字符向前递补。

删除字符串中重复字符的源程序清单:;DELD.ASMDATA SEGMENTSTRN DB 80 DUP(?)LEN DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATAMOV DS,AXMOV ES,AXLEA SI,STRN①MOV CL,0 AGAIN: MOV AH,1 ①INT 21HCMP AL,0DHJZ DONEMOV [SI],ALINC SIINC CLJMP AGAINDONE: MOV CH, 0MOV LEN,CLDEC SI②MOV BYTE PTR [SI+1],'$'源程序在27行有错误,有提示的消息可知,此处需要用到变址或基址寄存器,用EDIT命令找到错误的地方,并改正:此处是寄存器直接寻址,把cl的值送给标号为LEN存储单元,所以应去掉”[]”修改程序保存再编译以检查是否还有错误:有上图编译可知,程序修改正确,接下来连接成目标程序:生成的目标程序名为DELD.EXE用反汇编命令查看程序代码:运行程序,检验程序设计的正确性:执行程序,输入字符串”DKJKLDKEIOWEJDLJAHNVL”,根据编写要求,显示的结果为“KIOWEDJAHNVL“,既删除字符串中重复的字符。

实验3 字符串匹配实验

实验3  字符串匹配实验

实验3 字符串匹配实验一、实验目的掌握提示信息的设置方法及读取键盘输入信息的方法。

二、实验内容编写程序,实现两个字符串比较,如相同,由显示“MARCH”,否则,显示“NOMATCH”。

三、参考流程如图3-3所示N图3-3 实现字符串匹配的参考流程四、报告要求1、整理经过运行正确的源程序,加上注释。

2、总结如何编制提示信息及领会键盘输入信息程序的方法。

程序如下:STACKS SEGMENT STACK ;堆栈段DW 128 DUP(?) ;注意这里只有128个字节STACKS ENDSDA TAS SEGMENT ;数据段PLAY DB 'PLEASE TNPUT NUMBERS $' ;提示输入数据 ERROR DB 0DH,0AH, '输入错误!',0DH,0AH,'$'STRING DB 0DH,0AH,'$'DA TAS ENDSCODES SEGMENT ;代码段ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS ;初始化MOV DS,AXMOV DX,OFFSET PLAY ;指针指向代码段首位MOV AH,9INT 21H ;利用9号功能键显示字符串MOV CH,4MOV CL,4XOR BX,BX ;清零ONE: MOV AH,01H ;继续输入字符INT 21HSUB AL,'0' ;十进制转换成二进制CMP AL,0JL FIVE ;判断其值小于0则弹出错误CMP AL ,9JNG TWO ;值不大于9SUB AL ,7CMP AL,16JNB FIVE ;不小于16则弹出错误TWO: ROL BX,CL ;左移OR BL,ALDEC CHJNZ ONELEA DX,STRINGMOV AH,09HINT 21HMOV CH,16MOV AH,02HTHERE: ROL BX,1 ;循环左移MOV DL,BLAND DL,01H ;保留最后一位 ADD DL,'0'INT 21HDEC CHJNZ THEREJMP EXITFIVE: MOV AH,09HMOV DX,OFFSET FIVEINT 21HEXIT:MOV AX,4C00H ;退出程序 INT 21HCODES ENDSEND START。

【字符串匹配】BM(Boyer-Moore)字符串匹配算法详解总结(附C++实现代码)

【字符串匹配】BM(Boyer-Moore)字符串匹配算法详解总结(附C++实现代码)

【字符串匹配】BM(Boyer-Moore)字符串匹配算法详解总结(附C++实现代码)BM算法思想的本质上就是在进⾏模式匹配的过程中,当模式串与主串的某个字符不匹配的时候,能够跳过⼀些肯定不会匹配的情况,将模式串往后多滑动⼏位。

BM算法寻找是否能多滑动⼏位的原则有两种,分别是坏字符规则和好后缀规则。

坏字符规则:我们从模式串的末尾往前倒着匹配,当我们发现某个字符⽆法匹配时,我们把这个⽆法匹配的字符叫做坏字符(主串中的字符)。

此时记录下坏字符在模式串中的位置si,然后拿坏字符在模式串中查找,如果模式串中并不存在这个字符,那么可以将模式串直接向后滑动m位,如果坏字符在模式串中存在,则记录下其位置xi,那么模式串向后移动的位数就是si-xi,(可以在确保si>xi,执⾏减法,不会出现向前移动的情况)。

如果坏字符在模式串中多次出现,那我们在计算xi的时候,选择最靠后的那个,这样不会因为让模式串滑动过多,导致本来可能匹配的情况被略过。

好后缀规则:在我们反向匹配模式串时,遇到不匹配时,记录下当前位置j位坏字符位置。

把已经匹配的字符串叫做好后缀,记作{u}。

我们拿它在模式串中查找,如果找到了另⼀个跟{u}相匹配的字串{u*},那么我们就将模式串滑动到字串{u*}与主串{u}对齐的位置。

如下图所⽰:如果在模式串中找不到另⼀个等于{u}的⼦串,我们就直接将模式串滑动到主串中{u}的后⾯,因为之前的任何⼀次往后滑动,都没有匹配主串中{u}的情况。

但是这种滑动做法有点太过头了,可以看下⾯的例⼦,如果直接滑动到好后缀的后⾯,可能会错过模式串与主串可以匹配的情况。

如下图:当模式串滑动到前缀与主串中{u}的后缀有部分重合的时候,并且重回部分相等的时候,就可能会存在完全匹配的情况。

所以针对这种情况我们不仅要看好后缀在模式串中,是否有另⼀个匹配的字串,我们还要考察好后缀的后缀字串是否存在跟模式串的前缀字串匹配的情况。

如下图所⽰:最后总结如何确定模式串向后滑动的位数,我们可以分别计算好后缀和坏字符往后滑动的位数,然后取两个数中最⼤的。

微机原理__字符匹配程序实验报告

微机原理__字符匹配程序实验报告

太原理工大学现代科技学院课程实验报告专业班级学号姓名指导教师一、实验目的掌握提示信息的使用方法及键盘输入信息的用法。

二、实验内容1、编写程序,实现两个字符串比较。

如果两个字符串中有一个字符相同,显示“MATCH”,否则,显示“NO MATCH”。

2、程序框图三、所用仪器与软件仪器:电脑一台软件:Masm for Windows 集成实验环境 2009、7四、实验方法、步骤1、编写程序代码2、运行程序,修改错误代码3、再次运行代码直至运行出正确结果五、源码程序编制及分析注释CRLF MACRO 宏定义MOV AH,02H AH=02HMOV DL,0DH DL=0DHINT 21H 系统功能调用,输出回车字符MOV AH,02H AH=02HMOV DL,0AH DL=0AINT 21H 系统功能调用,输出换行符ENDM 宏定义结束DATA SEGMENT 定义数据段MESS1 DB 'MATCH',0DH,0AH,'$' 定义8个数据储存单元MESS2 DB 'NO MATCH',0DH,0AH,'$' 定义11个数据储存单元MESS3 DB 'INPUT STRING1:',0DH,0AH,'$' 定义17个数据储存单元MESS4 DB 'INPUT STRING2:',0DH,0AH,'$' 定义17个数据储存单元MAXLEN1 DB 81 定义最大长度为81个字节ACTLEN1 DB ?STRING1 DB 81 DUP (?) 定义STRING1长度为81 MAXLEN2 DB 81 定义最大长度为81ACTLEN2 DB ?STRING2 DB 81 DUP (?) 定义STRING2长度为81DATA ENDS 数据段结束STACK SEGMENT STACK 定义堆栈段STA DB 50 DUP (?) 定义50个数据储存单元TOP EQU LENGTH STA 给TOP赋值50STACK ENDS 堆栈段结束CODE SEGMENT 定义代码段ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK 定义段基址START: MOV AX,DATAMOV DS,AX 把DATA的首地址赋给DSMOV ES,AX 把DATA的首地址赋给ESMOV AX,STACKMOV SS,AX 把STACK的首地址赋给SSMOV SP,TOP 给SP赋值50MOV AH,09H AH=09HMOV DX,OFFSET MESS3 把MESS3的偏移地址赋给DXINT 21H 系统功能调用MOV AH,0AH AH=0AHMOV DX,OFFSET MAXLEN1 把MAXLEN1的偏移地址赋给DXINT 21H 系统功能调用CRLFMOV AH,09H AH=09HMOV DX,OFFSET MESS4 把MESS4的偏移地址赋给DXINT 21H 系统功能调用MOV AH,0AH AH=0AHMOV DX,OFFSET MAXLEN2 把MAXLEN2的偏移地址赋给DXINT 21H 系统功能调用CRLFCLDMOV SI,OFFSET STRING1 把STRING1的偏移地址赋给SIMOV CL,[SI-1] 把SI-1内的内容赋给CLMOV CH,00H CH=00HKKK: MOV DI,OFFSET STRING2 把STRING2的偏移地址赋给DI PUSH CX 将CX压入堆栈MOV CL,[DI-1] 将DI-1内的的内容赋给CLMOV CH,00H CH=00HMOV AL,[SI] 将SI内的内容赋给ALMOV DX,DI 将DI赋给DXREPNZ SCASB 寻找第一个相同字符JZ GGG ZF=0执行GGG否则顺序执行INC SI SI自加1POP CX 弹出CXLOOP KKK 跳转到KKK循环MOV AH,09HMOV DX,OFFSET MESS2INT 21H 系统功能调用JMP PPP 跳转到PPPGGG: MOV AH,09HMOV DX,OFFSET MESS1INT 21H 输出MESS1PPP: MOV AX,4C00HINT 21H 带返回码结束CODE ENDS 代码段结束END START 整个程序结束六、实验结果与分析实验结果如下:(1)两个字符串中没有字符相同:(2)两个字符串中有两个字符相同:。

微机原理实验三 字符串匹配程序.

微机原理实验三   字符串匹配程序.

实验三字符串匹配程序教学目标:通过教学让学生掌握显示提示信息的方法及接收键盘输入信息的方法。

重点、难点:重点:字符串匹配的算法,用INT 21H 的09号子功能显示提示信息,用INT 21H的0A号子功能接收字符难点:用INT 21H的0A号子功能接收字符课时安排:2学时教学过程:讲解实验过程一实验目的:掌握显示提示信息的方法及接收键盘输入信息的方法二实验内容:编写程序,实现两个字符串的比较。

如相同,则显示“MATCH”,否则,显示”NO MATCH”.三程序框图(讲解流程图,介绍编写程序的思路)四实验原理1、讲解DB、DUP、EQU等伪指令的功能以及使用格式2、讲解INT 21H 的09H子功能的功能、工作情况以及使用格式3、讲解INT 21H的0AH子功能的功能、工作情况以及使用格式4、讲解串扫描指令SCASB的功能以及使用格式5、入栈、出栈指令PUSH 、POP的使用情况五实验参考程序CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTMESS1 DB 'MA TCH',0DH,0AH,'$'MESS2 DB 'NO MA TCH',0DH,0AH,'$'MESS3 DB 'INPUT STRING1:',0DH,0AH,'$'MESS4 DB 'INPUT STRING2:',0DH,0AH,'$'MAXLEN1 DB 81ACTLEN1 DB ?STRING1 DB 81 DUP(?)MAXLEN2 DB 81ACTLEN2 DB ?STRING2 DB 81 DUP(?)DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACK,ES:DATASTART: MOV AX,DA TAMOV DS,AXMOV AX,DA TAMOV ES,AXMOV AX,STACKMOV SS,AXMOV SP,TOP ;段寄存器及堆栈初始化MOV AH,09HMOV DX,OFFSET MESS3INT 21H ;显示输入提示1MOV AH,0AHMOV DX,OFFSET MAXLEN1INT 21H ;接收键入的字符串1CRLF ;回车换行MOV AH,09HMOV DX,OFFSET MESS4INT 21H ;显示输入提示2MOV AH,0AHMOV DX,OFFSET MAXLEN2INT 21H ;接收键入的字符串2CRLFCLDMOV SI,OFFSET STRING1MOV CL,[SI-1]MOV CH,00H ;字符串1的实际字符数送CXKKK: MOV DI,OFFSET STRING2PUSH CXMOV CL,[DI-1]MOV CH,00H ;字符串2的实际字符数送CXMOV AL,[SI]MOV DX,DIREPNZ SCASB ;将串1中的一个字符和串2中的所有字符作比较JZ GGG ;比较相等转GGGINC SI ;从串1中取下一个字符POP CXLOOP KKKMOV AH,09HMOV DX,OFFSET MESS2INT 21H ;显示‘NO MA TCH'JMP PPPGGG: MOV AH,09HMOV DX,OFFSET MESS1INT 21H ;显示'MATCH'PPP: MOV AX,4C00HINT 21H ;返回DOSCODE ENDSEND START六实验步骤1、按实验要求编写程序2、汇编连接程序生成可执行文件3、执行程序观察结果七、拓展练习编写程序,实现两个字符串的比较。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三字符串匹配程序
教学目标:通过教学让学生掌握显示提示信息的方法及接收键盘输入信息的方法。

重点、难点:
重点:字符串匹配的算法,用INT 21H 的09号子功能显示提示信息,用INT 21H的0A号子功能接收字符
难点:用INT 21H的0A号子功能接收字符
课时安排:2学时
教学过程:讲解实验过程
一实验目的:
掌握显示提示信息的方法及接收键盘输入信息的方法
二实验内容:
编写程序,实现两个字符串的比较。

如相同,则显示“MATCH”,否则,显示”NO MATCH”.
三程序框图(讲解流程图,介绍编写程序的思路)
四实验原理
1、讲解DB、DUP、EQU等伪指令的功能以及使用格式
2、讲解INT 21H 的09H子功能的功能、工作情况以及使用格式
3、讲解INT 21H的0AH子功能的功能、工作情况以及使用格式
4、讲解串扫描指令SCASB的功能以及使用格式
5、入栈、出栈指令PUSH 、POP的使用情况
五实验参考程序
CRLF MACRO
MOV AH,02H
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
ENDM
DATA SEGMENT
MESS1 DB 'MA TCH',0DH,0AH,'$'
MESS2 DB 'NO MA TCH',0DH,0AH,'$'
MESS3 DB 'INPUT STRING1:',0DH,0AH,'$'
MESS4 DB 'INPUT STRING2:',0DH,0AH,'$'
MAXLEN1 DB 81
ACTLEN1 DB ?
STRING1 DB 81 DUP(?)
MAXLEN2 DB 81
ACTLEN2 DB ?
STRING2 DB 81 DUP(?)
DATA ENDS
STACK SEGMENT
STA DB 20 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA,SS:STACK,ES:DATA
START: MOV AX,DA TA
MOV DS,AX
MOV AX,DA TA
MOV ES,AX
MOV AX,STACK
MOV SS,AX
MOV SP,TOP ;段寄存器及堆栈初始化
MOV AH,09H
MOV DX,OFFSET MESS3
INT 21H ;显示输入提示1
MOV AH,0AH
MOV DX,OFFSET MAXLEN1
INT 21H ;接收键入的字符串1
CRLF ;回车换行
MOV AH,09H
MOV DX,OFFSET MESS4
INT 21H ;显示输入提示2
MOV AH,0AH
MOV DX,OFFSET MAXLEN2
INT 21H ;接收键入的字符串2
CRLF
CLD
MOV SI,OFFSET STRING1
MOV CL,[SI-1]
MOV CH,00H ;字符串1的实际字符数送CX
KKK: MOV DI,OFFSET STRING2
PUSH CX
MOV CL,[DI-1]
MOV CH,00H ;字符串2的实际字符数送CX
MOV AL,[SI]
MOV DX,DI
REPNZ SCASB ;将串1中的一个字符和串2中的所有字符作比较
JZ GGG ;比较相等转GGG
INC SI ;从串1中取下一个字符
POP CX
LOOP KKK
MOV AH,09H
MOV DX,OFFSET MESS2
INT 21H ;显示‘NO MA TCH'
JMP PPP
GGG: MOV AH,09H
MOV DX,OFFSET MESS1
INT 21H ;显示'MATCH'
PPP: MOV AX,4C00H
INT 21H ;返回DOS
CODE ENDS
END START
六实验步骤
1、按实验要求编写程序
2、汇编连接程序生成可执行文件
3、执行程序观察结果
七、拓展练习
编写程序,实现两个字符串的比较。

如字符长度相同并且对应字符顺序相同,则显示“MATCH”,否则,显示“NO MATCH”。

相关文档
最新文档