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

合集下载
  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”。

相关文档
最新文档