微机原理实验2程序---字符串匹配实验(共5页).doc

上传人:飞****2 文档编号:13329662 上传时间:2022-04-28 格式:DOC 页数:5 大小:28.50KB
返回 下载 相关 举报
微机原理实验2程序---字符串匹配实验(共5页).doc_第1页
第1页 / 共5页
微机原理实验2程序---字符串匹配实验(共5页).doc_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《微机原理实验2程序---字符串匹配实验(共5页).doc》由会员分享,可在线阅读,更多相关《微机原理实验2程序---字符串匹配实验(共5页).doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上8086汇编语言程序实验:实验二、字符串匹配实验题目:1、 (必做题)编程实现:从键盘分别输入两个字符串(不必等长),然后进行比较,若两个字符串有相同的字符,则显示“MATCH”,若字符都不相同则显示“NO MATCH”。2、 (选做题)编程实现:从键盘分别输入两个字符串,然后进行比较,若两个字符串的长度和对应字符都完全相同,则显示“MATCH”,否则显示“NO MATCH”。对应程序如下所示:;第1题;=HUICHEMACRO ;定义一个具有回车、换行功能的宏,为程序多次回车换行所调用。MOV DL,0DH;用2号功能“显示”回车。MOV AH,02HINT 21H

2、MOV DL,0AH;用2号功能“显示”换行。MOV AH,02HINT 21HENDMDATA SEGMENTMESSAGE1 DB MATCH,$;定义“MATCH”提示信息,“$”作为调用9号功能的结束符。MESSAGE2 DB NO MATCH,$;定义“NO MATCH”提示信息。TISHI1 DB Please input the first string:,$;提示输入第1个字符串的提示信息。TISHI2 DB Please input the second string:,$;提示输入第1个字符串的提示信息。STRING1 DB 100; 100为存第一个字符串的最大可用空间的

3、字节数。DB ?;预留字节,存储将要输入的第1个字符串的实际长度。DB 100 DUP(?);预留100个字节空间,用于存放第1个字符串。STRING2 DB 100DB ?DB 100 DUP(?)DATA ENDSSTACK SEGMENT;定义一个50字节大小的堆栈段空间。ZHANDB 50 DUP(?)ZHANDINGEQU LENGTH ZHANSTACK ENDSCODE SEGMENT;代码段开始。ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTARTUP:MOV AX,DATA;程序开始,首先将几个段寄存器初始化为各段的首地址。MOV DS,A

4、X;MOV ES,AX;MOV AX,STACK;MOV SS,AX;MOV SP,ZHANDING;栈顶指针赋初值。MOV DX, OFFSET TISHI1;用9功能显示提示输入第1个字符串的提示信息。MOV AH,9INT 21HHUICHE;调用 宏定义的“回车换行”功能,程序运行到此处时进行回车换行。MOV DX, OFFSET STRING1MOV AH,0AH;用10号功能输入第1个字符串。INT 21HHUICHEMOV DX, OFFSET TISHI2MOV AH,9INT 21HHUICHEMOV DX, OFFSET STRING2;输入第2个字符串。MOV AH,0A

5、HINT 21HHUICHECLD; 方向标志位清0,按增址方向操作。MOV SI, OFFSET STRING12;将第1个字符串第1个字符偏移地址传送给SI,为串搜索做准备。MOV BX,0; BX为后面“记下第1个字符串已经被搜索过的字符的个数”做准备。MOV CL, STRING11MOV CH,0; 将第1个字符串的实际长度赋给CX。L1:PUSH CX;先将第1个字符串的实际长度压入堆栈,保留,为后面备用。MOV DI, OFFSET STRING22;将第2个字符串第1个字符偏移地址传送给DI,为串搜索做准备。MOV CL, STRING21;将第2个字符串的实际长度传送给CX。

6、MOV CH,0MOV AL,SIREPNZ SCASB;进行串搜索,将第2个字符串中的字符与第1个字符串的一个字符进行比较。JZ XXX1INC SI;SI加1,指向第1个字符串的下一个字符。INC BX;记下第1个字符串已经被搜索过的字符的个数。POP CXCMP CX,BX;“已经被搜索过的字符个数”BX与“第1个字符串实际长度”CX进行比较。JNZ L1;若BX与CX不等,则进行“第1字符串的下一字符”与“第2字符串中的字符”的比较。;若BX与CX相等,则进行执行下面的语句,显示“NO MACTH”。MOV DX, OFFSET MESSAGE2;显示“NO MACTH”。MOV AH

7、,9INT 21HJMP XXX2;显示“NO MACTH”后,跳转到XXX2,准备返回DOS系统。XXX1:MOV DX, OFFSET MESSAGE1;显示“MACTH”。MOV AH,9INT 21HXXX2:MOV AH,1INT 21H;等待键盘响应,准备返回DOS系统。MOV AH,4CH;返回DOS系统,准备结束程序。INT 21HCODE ENDSEND STARTUP;程序从此处结束。;=;第2题;=HUICHEMACRO ;定义一个具有回车、换行功能的宏,为程序多次回车换行所调用。MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02

8、HINT 21HENDMDATA SEGMENTMESSAGE1 DB MATCH,$MESSAGE2 DB NO MATCH,$TISHI1 DB Please input the first string:,$TISHI2 DB Please input the second string:,$STRING1 DB 100DB ?DB 100 DUP(?)STRING2 DB 100DB ?DB 100 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTARTUP:MOV AX,DATAMOV DS,AXMOV ES,AX

9、MOV DX, OFFSET TISHI1MOV AH,9INT 21HHUICHE;调用 宏定义的“回车换行”功能,程序运行到此处时进行回车换行。MOV DX,OFFSET STRING1MOV AH,0AHINT 21HHUICHEMOV DX, OFFSET TISHI2MOV AH,9INT 21HHUICHEMOV DX,OFFSET STRING2MOV AH,0AHINT 21HHUICHECLDMOV SI,OFFSET STRING12 ;将第1个字符串第1个字符偏移地址传送给SI,为串比较做准备。MOV BL, STRING11MOV BH,0; 将第1个字符串的实际长度赋

10、给BX。MOV DI,OFFSET STRING22 ;将第2个字符串第1个字符偏移地址传送给DI,为串比较做准备。MOV CL, STRING21MOV CH,0; 将第2个字符串的实际长度赋给CX。CMP BX,CX;比较两个字符串的长度JNE XXX0;若两个字符串的长度不相等,则转到XXX0处,显示“NO MACTH”。REPE CMPSB;进行串比较,将第2个字符串与第1个字符串按字符逐一进行比较。JE XXX1;若经过比较,两字符串完全相等,则跳到XXX1处,显示“MACTH”。;否则到XXX0处,显示“NO MACTH”。XXX0:MOV DX, OFFSET MESSAGE2;显示“NO MACTH”。MOV AH,9INT 21HJMP XXX2;显示“NO MACTH”后,跳转到XXX2,准备返回DOS系统。XXX1:MOV DX, OFFSET MESSAGE1;显示“MACTH”。MOV AH,9INT 21HXXX2:MOV AH,1;等待键盘响应,准备返回DOS系统。INT 21HMOV AH,4CHINT 21H;返回DOS系统,准备结束程序。CODE ENDSEND STARTUP;程序从此处结束。;=专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁