DATA SEGMENT
STR1 db "ENTER YOUR STRING HERE = $"
STR2 db 0ah,0dh,"ENTER THE SHORT STRING = $"
FOUND db 0ah,0dh,"FOUND STRING$"
NOTFOUND db 0ah,0dh,"NOT FOUND ANY STRING$"
M DB 15 DUP("$")
N DB 3 DUP("$")
MONE EQU 15
COUNT DB 1
DATA ENDS
sseg segment stack
dw 100h dup(?)
sseg ends
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
LEA SI,M
LEA DI,N
MOV COUNT,0h
;----GET STRING
MOV AH,09H
LEA DX,STR1
INT 21H
MOV AH,0AH
MOV DX,SI
INT 21H
;----GET SHORT STRING
MOV AH,09
LEA DX,STR2
INT 21H
MOV AH,0AH
MOV DX,DI
INT 21H
mov ah,00
int 16h
;START TO CMP STRINGS
MOV CL,MONE
l1: MOV AX,M[SI]
MOV BX,N[DI]
CMP AX,BX
JE L2
JMP L3
;----EQUAL------------
L2: INC COUNT
CMP COUNT,3
JZ PRINTSTR
INC SI
INC DI
DEC CL
CMP CL,0
JNZ L1
JMP L4
;-------NOT EQUAL------
L3: MOV COUNT,0
INC AX
DEC CL,1
CMP CL,0
JNZ L1
JMP L4
;------PRINT THE STRING-----
PRINTSTR:MOV AH,09H
LEA DX,FOUND
INT 21H
MOV COUNT,0
INC SI
MOV BX,COUNT
DEC CL
JNZ L1
JMP L4
mov ah,00
int 16h
L4: MOV AH,09H
LEA DX,NOTFOUND
INT 21H
SOF:
MOV AH,4CH
INT 21H
CODE ENDS
END START