谁帮我做一下这个汇编题啊!呵呵

来源:百度知道 编辑:UC知道 时间:2024/04/29 13:20:45
实验二 查找匹配字符串
实验目的:熟悉汇编程序设计的一般格式及对字符串操作的方法.
实验内容:程序接收用户键入的一个关键字及一个句子。如果句子中不包含关键字则显示'No match';如果句子中包含关键字则显示'match',且把该字在句子中的位置用十六进制数显示出来。

自己运行看看结果怎么样吧,先输入句子,再输入关键字
DATAS SEGMENT
DA1 DB 50H,?,20H DUP(?)
DA2 DB 10H,?,10H DUP(?)
DA3 DB 0AH,0DH,"match$"
DA4 DB 0AH,0DH,"NO match$"
DA5 DB 0AH,0DH,'$'
DATAS ENDS

STACKS SEGMENT
STACKS ENDS

CODES SEGMENT 'CODE'
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
LEA DX,DA1
MOV AH,0AH
INT 21H
LEA DX,DA5
MOV AH,09H
INT 21H
LEA DX,DA2
MOV AH,0AH
INT 21H
LEA SI,DA1
LEA DI,DA2
MOV CH,0
MOV CL,[SI+1]
MOV BL,[DI+2]
INC SI
INC SI

L:
MOV BH,[SI]
INC SI
CMP BL,BH
JZ DON0
LOOP L
JMP DON1
DON0:
PUSH SI
LEA DI,DA2
PUSH CX
MOV CH,0
MOV CL,[DI+1]
DEC CX
JZ DON2
L1: MOV BL,[SI]
MOV AL,[DI+3]
CMP BL,AL
JNZ DON4
INC SI
INC DI
LOOP L1 <