DATA SEGMENT
STRING1 DB 100,?,100 DUP(?)
STRING2 DB 100,?,100 DUP(?)
RESULT1 DB 'MATCH','$'
RESULT2 DB 'NOMATCH','$'
TISHI1 DB 'PLEASE INPUT THE FIRST STRING:','$'
TISHI2 DB 'PLEASE INPUT THE SECOND STRING:','$'
DATA ENDS
STRING1 DB 100,?,100 DUP(?)
STRING2 DB 100,?,100 DUP(?)
RESULT1 DB 'MATCH','$'
RESULT2 DB 'NOMATCH','$'
TISHI1 DB 'PLEASE INPUT THE FIRST STRING:','$'
TISHI2 DB 'PLEASE INPUT THE SECOND STRING:','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
;显示提示1
MOV DX,OFFSET TISHI1
MOV AH,09H
INT 21H
;输入第一个字符串
MOV DX,OFFSET STRING1
MOV AH,0AH
INT 21H
MOV DL,0AH;换行
MOV AH,02H;显示单个字符
INT 21H
MOV AX,DATA
MOV DS,AX
MOV ES,AX
;显示提示1
MOV DX,OFFSET TISHI1
MOV AH,09H
INT 21H
;输入第一个字符串
MOV DX,OFFSET STRING1
MOV AH,0AH
INT 21H
MOV DL,0AH;换行
MOV AH,02H;显示单个字符
INT 21H
MOV AX,DATA
MOV DS,AX
MOV DS,AX
;显示提示2
MOV DX,OFFSET TISHI2
MOV AH,09H
INT 21H
;输入第2个字符串
MOV DX,OFFSET STRING2
MOV AH,0AH
INT 21H
MOV DL,0AH;换行
MOV AH,02H;显示单个字符
INT 21H
MOV DX,OFFSET TISHI2
MOV AH,09H
INT 21H
;输入第2个字符串
MOV DX,OFFSET STRING2
MOV AH,0AH
INT 21H
MOV DL,0AH;换行
MOV AH,02H;显示单个字符
INT 21H
MOV SI,OFFSET STRING1
MOV DI,OFFSET STRING2
;比较长度
MOV AL,ES:[SI+1]
MOV BL,DS:[DI+1]
CMP AL,BL
JNZ NO;若不等则到no
;比较相等
MOV CL,[SI+1]
MOV CH,0
INC SI
INC DI
MOV DI,OFFSET STRING2
;比较长度
MOV AL,ES:[SI+1]
MOV BL,DS:[DI+1]
CMP AL,BL
JNZ NO;若不等则到no
;比较相等
MOV CL,[SI+1]
MOV CH,0
INC SI
INC DI
YES:
INC SI
INC DI
MOV AL,ES:[SI]
MOV BL,DS:[DI]
CMP AL,BL
JNZ NO;不等于0(即不等)转移
LOOP YES
MOV DX,OFFSET RESULT1
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
INC SI
INC DI
MOV AL,ES:[SI]
MOV BL,DS:[DI]
CMP AL,BL
JNZ NO;不等于0(即不等)转移
LOOP YES
MOV DX,OFFSET RESULT1
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
NO:
MOV DX,OFFSET RESULT2
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
MOV DX,OFFSET RESULT2
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START