DATA SEGMENT TIP1 DB 0DH,0AH, 'PLEASE INPUT STRING1 END BY ENTER:' ,'$' TIP2 DB 0DH,0AH, 'PLEASE INPUT STRING1 END BY ENTER:' ,'$' TIP3 DB 0DH,0AH, 'MATCH','$' TIP4 DB 0DH,0AH, 'NOT MATCH','$' TIP5 DB 0DH,0AH, 'PRESS ENTER TO EXIT ','$' BUFF1 DB 101,0,101 DUP(0) BUFF2 DB 101,0,101 DUP(0) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX;数据段和堆栈段初始化 LEA DX,TIP1 MOV AH,9 INT 21H;DISPLAY TIP1 LEA DX,BUFF1 MOV AH,0AH INT 21H;输入第一个字符串到BUFF1缓冲区 LEA DX,TIP2 MOV AH,9 INT 21H LEA DX,BUFF2 MOV AH,0AH INT 21H;输入第二个字符串到BUFF2缓冲区 LEA SI,BUFF1;第一个字符串首址给SI LEA DI,BUFF2;第二个字符串首址给DI MOV CX,53 CLD;地址递增 REPZ CMPSB;字符串比较 JZ MATCH;相等输出MATCH LEA DX,TIP4 MOV AH,9 INT 21H;不等输出NOT MATCH JMP EXIT MATCH: LEA DX,TIP3 MOV AH,9 INT 21H;DISPLAY TIP1 JMP EXIT EXIT: LEA DX,TIP5 MOV AH,9 INT 21H MOV AH,1 INT 21H CMP AL,13 JZ AA JMP START AA: MOV AH,4CH INT 21H CODE ENDS END START 给每行代码进行注释
时间: 2024-01-27 11:05:49 浏览: 139
注释如下:
```assembly
DATA SEGMENT
TIP1 DB 0DH,0AH, 'PLEASE INPUT STRING1 END BY ENTER:' ,'$' ;提示输入字符串1,以回车键结束
TIP2 DB 0DH,0AH, 'PLEASE INPUT STRING1 END BY ENTER:' ,'$' ;提示输入字符串2,以回车键结束
TIP3 DB 0DH,0AH, 'MATCH','$' ;匹配时输出MATCH
TIP4 DB 0DH,0AH, 'NOT MATCH','$' ;不匹配时输出NOT MATCH
TIP5 DB 0DH,0AH, 'PRESS ENTER TO EXIT ','$' ;提示按回车键退出
BUFF1 DB 101,0,101 DUP(0) ;定义缓冲区BUFF1,长度为101
BUFF2 DB 101,0,101 DUP(0) ;定义缓冲区BUFF2,长度为101
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA ;将数据段DS存入AX寄存器
MOV DS,AX ;将AX中的数据段DS存入DS寄存器
MOV ES,AX ;将AX中的数据段DS存入ES寄存器,用于字符串比较时的目的地地址
LEA DX,TIP1 ;将TIP1的地址存入DX寄存器
MOV AH,9 ;将AH寄存器设置为9,表示显示字符串
INT 21H ;调用21H中断,显示TIP1提示信息
LEA DX,BUFF1 ;将BUFF1的地址存入DX寄存器
MOV AH,0AH ;将AH寄存器设置为0AH,表示输入字符串
INT 21H ;调用21H中断,输入字符串到BUFF1缓冲区
LEA DX,TIP2 ;将TIP2的地址存入DX寄存器
MOV AH,9 ;将AH寄存器设置为9,表示显示字符串
INT 21H ;调用21H中断,显示TIP2提示信息
LEA DX,BUFF2 ;将BUFF2的地址存入DX寄存器
MOV AH,0AH ;将AH寄存器设置为0AH,表示输入字符串
INT 21H ;调用21H中断,输入字符串到BUFF2缓冲区
LEA SI,BUFF1 ;将BUFF1的地址存入SI寄存器
LEA DI,BUFF2 ;将BUFF2的地址存入DI寄存器
MOV CX,53 ;将CX寄存器设置为53,表示比较两个字符串的长度,即53个字节
CLD ;将DF标志位清零,地址递增
REPZ CMPSB ;比较两个字符串
JZ MATCH ;如果相等,跳转到MATCH标号处,输出匹配信息
LEA DX,TIP4 ;如果不相等,将TIP4的地址存入DX寄存器
MOV AH,9 ;将AH寄存器设置为9,表示显示字符串
INT 21H ;调用21H中断,输出不匹配信息
JMP EXIT ;跳转到EXIT标号处
MATCH: LEA DX,TIP3 ;将TIP3的地址存入DX寄存器
MOV AH,9 ;将AH寄存器设置为9,表示显示字符串
INT 21H ;调用21H中断,输出匹配信息
JMP EXIT ;跳转到EXIT标号处
EXIT: LEA DX,TIP5 ;将TIP5的地址存入DX寄存器
MOV AH,9 ;将AH寄存器设置为9,表示显示字符串
INT 21H ;调用21H中断,输出提示信息
MOV AH,1 ;将AH寄存器设置为1,表示从键盘读入一个字符
INT 21H ;调用21H中断,读入一个字符
CMP AL,13 ;判断读入的字符是否为回车键,如果是,跳转到AA标号处
JZ AA ;如果不是,跳转到START标号处
JMP START
AA: MOV AH,4CH ;将AH寄存器设置为4CH,表示程序结束
INT 21H
CODE ENDS
END START
```
阅读全文