汇编 字符串匹配

DATA SEGMENT
STRING1 DB ‘AAA’;定义数据段,一个A占一个字节,STRING1是首地址
STRING2 DB ‘BBB’
YES DB ‘MATCH’,0DH,0AH,‘ ; 0 D H , 0 A H ';0DH,0AH组成换行符, 是字符串结束的符号
NO DB ‘NOMATCH’,0DH,0AH,’$’
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
PUSH DS
SUB AX,AX
PUSH AX
;这三条语句是为后面的ret做准备,ret即执行pop ip, pop cs,执行完ip的值为0,cs的值为ds。
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,STRING1
LEA DI,STRING2
MOV CX,STRING2-STRING1;STRING 2的地址比较大,所以放在前面
CLD;清空标志位
REPE CMPSB;重复比较,直至循环次数为0
;如果使用 CLD,REPE CMPSB 必须使用SI,DI这两个寄存器
JNZ DISPNO;JNZ选择语句
MOV AH,9
LEA DX,YES
INT 21H

JMP EXIT;无条件跳转语句

DISPNO:
MOV AH,9
LEA DX,NO
INT 21H

EXIT:
MOV AH,4CH
INT 21H
CODE ENDS

END START

猜你喜欢

转载自blog.csdn.net/qq_40240576/article/details/84136875