📄 compare.asm
字号:
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
ORG 100H
BEGIN: JMP START
PARALIST LABEL BYTE
STR1LEN DB 51
STR1ACT DB ?
STR1DATA DB 50 DUP(?)
STR2LEN DB 51
STR2ACT DB ?
STR2DATA DB 50 DUP(?)
NEWLINE DB 0DH,0AH,'$'
RESULTY DB 'Y$'
RESULTN DB 'N$'
INFSTR DB 'Input the first string:',0DH,0AH,'$'
INSSTR DB 'Input the second string:',07h,0DH,0AH,'$'
START: MOV AX,CS
MOV DS,AX
LEA DX,INFSTR
CALL NEXTLINE
MOV AH,0AH ;Input string
LEA DX,PARALIST ;Input the first string
INT 21H
LEA DX,NEWLINE
CALL NEXTLINE ; To next line
MOV DX,OFFSET INSSTR
CALL NEXTLINE
MOV AH,0AH ;Invok the 0AH founction
LEA DX,STR2LEN ;Input the second string
INT 21H
MOV BL,STR1ACT ;Compare the two string's length
CMP BL,STR2ACT
JNE PRINTN; ;if not equals output 'N'
XOR CX,CX
MOV CL,STR1ACT ;Set loop numbers
XOR DI,DI ;Clear DI,BX to 0
XOR BX,BX
LEA BX,STR2DATA ;Get the offest of STR2DATA
COMPARE: XOR AH,AH ;Clear AH to 0
MOV AX,WORD PTR STR1DATA[DI]
CMP [BX],AX
JNE PRINTN
INC BX ;Add BX,DI by 1
INC DI
LOOP COMPARE ;If the current characters are equals, goto loop
LEA DX,NEWLINE
CALL NEXTLINE ; To next line
LEA DX,RESULTY ;Output 'Y'
CALL NEXTLINE
MOV AX,4C00H
INT 21H
PRINTN: LEA DX,NEWLINE
CALL NEXTLINE ; To next line
LEA DX,RESULTN ;Output 'N'
CALL NEXTLINE
MOV AH,4CH
INT 21H
;****************New line***************
NEXTLINE PROC NEAR
MOV AH,9H
INT 21H
RET
NEXTLINE ENDP
CODE ENDS
END BEGIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -