ASSUME CS:CODES,DS:DATAS
DATAS SEGMENT
sen1 DB 'Enter keyword:','$'
sen2 DB 'Enter Sentence:','$'
next DB 13,10,'$'
match DB 'Match at location:',13,10,'$'
notmatch DB 'No match.',13,10,'$'
mess DB 'H of the sentence.',13,10,'$'
buffer1 LABEL BYTE
max1 db 80
act1 db ?
string1 db 80 dup(?)
buffer2 LABEL BYTE
max2 db 80
act2 db ?
string2 db 80 dup(?)
DATAS ENDS
CODES SEGMENT
START:
mov ax,DATAS
mov ds,ax
mov es,ax
a00:
;输入要key
LEA DX,sen1
mov ah,09h
INT 21h
LEA DX,buffer1
mov ah,0AH
INT 21h
call crlf
cmp act1,0
je exit
;输入要匹配的字符串
a10:
LEA DX,sen2
mov ah,09H
INT 21h
LEA DX,buffer2
mov ah,0AH
INT 21h
call crlf
mov si,0
mov di,0
LEA bx,string2
mov al,act1
sub ah,ah
;长度小于直接不匹配
cmp act1,al
ja nmatch
mov cx,ax
push cx
mov al,act2
sub al,act1
inc al
a20:
mov ah,[bx+di]
cmp ah,string1[si]
jne a30
汇编:字符串匹配
该段代码是用汇编语言编写的,用于实现用户输入关键词和句子后进行匹配的功能。如果找到匹配的子串,它会显示匹配位置,否则提示无匹配。程序使用了INT21hDOS中断处理输入和输出,并进行了字节级别的字符串比较。
摘要由CSDN通过智能技术生成