📄 1 字符串匹配设计.asm
字号:
DATA SEGMENT
CHANGE EQU 0AH
ENTER EQU 0DH
TI1 DB 'PLEASE INPUT THE STRING ONE:','$'
TI2 DB CHANGE,ENTER, 'PLEASE INPUT THE STRING TWO:','$'
TI3 DB CHANGE,ENTER, 'NO MATCH','$'
TI4 DB CHANGE,ENTER, 'MATCH','$'
S1 DB 100 ;用户定义存放100B的缓存区
DB ? ;系统填入实际输入字符字节数
DB 100 DUP(?) ;存放第一次输入字符的ASCII码值
S2 DB 100
DB ?
DB 100 DUP(?) ;存放第二次输入字符的ASCII码值
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV DX,OFFSET TI1 ;DX指向字符串TI1
MOV AH,09H
INT 21H ;9号功能调用,显示字符串TI1
LEA DX, S1 ;将字符串1首地址送入DX
MOV AH, 0AH
INT 21H ;输入字符串到内存缓冲区,即接收键入的字符串
MOV DX, OFFSET TI2
MOV AH, 09H
INT 21H
LEA DX, S2
MOV AH, 0AH
INT 21H ;
MOV DI, DX ;字符串2首地址送入DI
MOV AL,[DI+1] ;字符串2内容送入AL
LEA SI,S1 ;指针SI指向字符串1首地址
CMP AL, [SI+1]
JNZ EXIT ;字符串1和字符串2不相等,跳到EXIT显示NO MATCH
ADD DI, 2
ADD SI, 2
MOV CH, 0
MOV CL, AL ;?
CLD ;方向标志清0,使指针按增量方向修改
REPE CMPSB ;重复执行串操作指令
JNZ EXIT
MOV DX,OFFSET TI4
MOV AH,09H
INT 21H
MOV AH,4CH ;返回DOS
INT 21H
EXIT: MOV DX,OFFSET TI3
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -