微机原理实验五 字符串匹配程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五字符串匹配程序
一、要求:
编写程序,实现两个字符串比较。若相同,则显示’MATCH’,否则显示’NO MATCH’。
二、目的:
掌握提示信息的使用方法及键盘输入信息的用法。
程序
CRLF MACRO
MOV DL, 0DH
MOV AH, 02H
INT 21H
MOV AH, 02H
MOV DL, 0AH
INT 21H
ENDM
DATA SEGMENT
MESS1 DB'MATCH',0DH,0AH,'$'
MESS2 DB'NO MATCH',0DH,0AH,'$'
MESS3 DB'INPUT STRING1!',0DH,0AH,'$'
MESS4 DB'INPUT STRING2!',0DH,0AH,'$'
MAXLEN1 DB81
STRING1 DB81 DUP(?)
MAXLEN2 DB81
STRING2 DB81 DUP(?)
DATA ENDS
STACK SEGMENT
STA DB64 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:DATA, SS:STACK
START: MOV AX, DATA
MOV DS, AX
MOV ES, AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV AH, 09H
MOV DX, OFFSET MESS3
INT 21H
MOV AL, MAXLEN1
MOV BX, OFFSET STRING1
MOV[BX ],AL
MOV AH, 0AH
MOV DX, OFFSET STRING1
INT 21H
CRLF
MOV AH, 09H
MOV DX, OFFSET MESS4
INT 21H
MOV AL, MAXLEN2
MOV BX, OFFSET STRING2
MOV[BX], AL
MOV AH, 0AH
MOV DX, OFFSET STRING2
INT 21H
CRLF
CLD
LEA SI, STRING1
MOV CL, [SI+1]
MOV CH, 0
KKK: LEA DI, STRING2
MOV DL, [DI+1]
MOV DH, 0
ZJ2: MOV AL, [SI+2]
CMP[DI+2], AL
JE ZJ3
ZJ1: INC DI
DEC DX
JZ GGG
JMP ZJ2
ZJ3: DEC CX
JZ MMM
DEC DX
JZ GGG
INC SI
INC DI MOV AL, [SI+2]
CMP[DI+2], AL
JE ZJ3
DEC DX
JZ GGG
LEA SI, STRING1
MOV CL, [SI+1]
MOV CH, 0
INC DI
JMP ZJ2
MMM: MOV AH, 09H
MOV DX, OFFSET MESS1
INT 21H
JMP PPP
GGG: MOV AH, 09H
MOV DX, OFFSET MESS2
INT 21H
PPP: MOV AX, 4C00H
INT 21H
CODE ENDS
END START