汇编实验二查找匹配字符串

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三查找匹配字符串

1.实验目的:

查找匹配字符串SEARCH。

2. 实验要求:

程序接收用户键入的一个关键字以及一个句子。如果句子中不包含关键字则显示“No match!”;如果句子中包含关键字则显示“Match!”,且把该句子中的位置用十六进制数显示出来。

实验结果:

要求程序的执行过程如下:

Enter keyword:abc

Enter Sentence: We are studying abc.

Match at location:11H of the sentence.

Enter Sentence: xyz, Ok?

No match.

Enter Sentence: ^C

3. 实验报告要求:

(1)分析要点及调试后的正确程序。

(2) 实验体会。

源代码:

DATAREA SEGMENT

STRING1 DB "Enter keyword:$"

STRING2 DB "Enter sentence:$"

STRING3 DB "Match at location:$"

STRING4 DB "No match!",13,10,"$"

STRING5 DB "H of the sentence.$"

keyword DB 50D,?,51D DUP(?)

sentence DB 50D,?,51D DUP(?)

DATAREA ENDS

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE,DS:DATAREA,ES:DATAREA START:

PUSH DS

SUB AX,AX

PUSH AX

MOV AX,DATAREA

MOV DS,AX

MOV ES,AX

LEA DX,STRING1

MOV AH,09H

INT 21H

LEA DX,keyword

MOV AH,0AH

INT 21H

MOV AH ,02H

MOV DL,0AH

INT 21H

LEA DX,STRING2

MOV AH,09H

INT 21H

LEA DX,sentence

MOV AH,0AH

INT 21H

MOV AH,02H

MOV DL,0AH

INT 21H

LEA SI,keyword+2 ;关键词

LEA DI,sentence+2

MOV AX,0

MOV AL,[sentence+1] ;句子字符个数MOV AH,[keyword+1] ;关键词字符个数CMP AL,AH

JL NO

SUB AL,AH

MOV AH,0

MOV CX,AX

INC CX

COMPARE:

PUSH CX

MOV CX,3 ;建议采用mov ax,字符个数,使字符的个数不固定CLD

REPZ CMPSB

JZ MATCH

MOV AX,3 ;建议采用mov ax,字符个数

SUB AX,CX

SUB SI,AX ;关键词回到词首

MOV AX,2 ;建议采用mov ax,字符个数-1

SUB AX,CX

SUB DI,AX

POP CX

LOOP COMPARE

NO: LEA DX,STRING4

MOV AH,09H

INT 21H

JMP EXIT

MATCH: POP CX

MOV BX,DI

LEA DX,STRING3

MOV AH,09H

INT 21H

SUB BX,OFFSET sentence+2

SUB BX,2 ;首地址所在字符串中的地址

CALL CHANGE

LEA DX,STRING5

MOV AH,09H

INT 21H

EXIT:

RET

MAIN ENDP

CHANGE PROC NEAR

PUSH AX

PUSH BX

PUSH CX

PUSH DX

MOV CH,4

MOV CL,4

ROTATE: ROL BX,CL

MOV AL,BL

AND AL,0FH

ADD AL,30H CMP AL,3AH JL PRINTIT ADD AL,7H PRINTIT: MOV DL,AL MOV AH,2 INT 21H DEC CH

JNZ ROTATE POP DX

POP CX

POP BX

POP AX

RET CHANGE ENDP CODE ENDS END START

相关文档
最新文档