汇编:字符串匹配

该段代码是用汇编语言编写的,用于实现用户输入关键词和句子后进行匹配的功能。如果找到匹配的子串,它会显示匹配位置,否则提示无匹配。程序使用了INT21hDOS中断处理输入和输出,并进行了字节级别的字符串比较。
摘要由CSDN通过智能技术生成
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值