实验二查找匹配字符串.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
20001542 罗阳 00级计算机二班 实验二 查找匹配字符串 实验目的:查找匹配字符串 实验要求:程序接收键入的一个关键字和一个句子,若句子中不包含关键字,则显示‘NO MATCH’;若句子包含关键字则显示‘MATCH’,并把该关键字在句子中的位置用十六进制数显示出来。程序以输入CTRL+C退出。 实验设计思想:①输入关键字和一个句子,应分别存入相应的缓冲区,可调用功能0AH。 ②在句子中查找关键字,可用串比较指令。SI:存放关键字的指针;DI:存放句子中正相比较的字段的指针;CX:存放关键字的字母个数(长度)。③整个比较过程可用一个循环结构完成。循环次数:(句子长度-关键字长度)+1,注意:在计算循环次数时,遇到句子长度关键字长度,转向显示“NO MATCH”。循环中还需用到BX寄存器,用来保存句子中当前正在比较字段的首地址。④输出信息:用功能调用09H分别显示不同的信息。若找到,还要显示匹配字符串在句子中的位置。找到时,BX寄存器的内容为匹配字符串的首地址,将其减去句子的首地址,再将差值加一即是所要的匹配字符串在句子中的位置。可将位置值转换为十六进制数从屏幕中显示出来。 源程序框图: (见下页) 程序开始 按照要求输入关键字,并保存。 输入句子,并保存 将句子首地址放到bx和di寄存器中,si指向关键字首地址,并将dl寄存器值赋0 CX寄存器中存放关键字长度,用串比较指令,结果为0? N AL内容赋(关键字长度-句子长度 Y (AL)0? Y N (AL)=(AL)+1 (BX)=(BX)+1,(DI)=BX Y (DL)=(DL)+1,(DL)(AL)? N 执行NOT MATCH 无 条 件 执行MATCH,并将关键字在句子中的位置转化为十六进制数输出 跳 转 结束返回 5、实验源程序: newline macro mov ah, 02h mov dl, 0dh int 21h mov ah, 02h mov dl, 0ah int 21h endm data segment maxlenk db 8 ;max key_word length factlenk db ? ;key_word length to enter key_word db 8 dup(?) maxlens db 32 ;max sentence length factlens db ? ;sentence length to enter sentence db 32 dup(?) info1 db Enter Key_word:$ info2 db Enter sentence:$ mess0 db Match at location:$ mess1 db No match.$ mess2 db ?,?,H of the sentence.$ data ends stack segment stack stack ends code segment main proc far assume cs:code, ds:data, es:data, ss:stack start: push ds sub ax, ax push ax mov ax, data mov ds, ax mov es, ax mov ah, 09h lea dx, info1 int 21h mov ah, 0ah lea dx, maxlenk int 21h ; read the keyword begin: newline mov ah, 09h lea dx, info2 int 21h mov ah, 0ah lea dx, maxlens int 21h ; read the sentence newline lea si, key_word lea bx, sentence lea di, sentence mov dl, 00h cld again: mov cl, factlenk repz cmpsb jz match mov al, factlens sub al,factlenk

您可能关注的文档

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档