读书人

汇编CMPS比较两字符串是不是相等

发布时间: 2013-01-01 14:04:19 作者: rapoo

汇编CMPS比较两字符串是否相等
DATE SEGMENT
INF1 DB 0DH,0AH,'INPUT FIRST STRING:$'
INF2 DB 0DH,0AH,'INPUT SECOND STRING:$'
INF3 DB 0DH,0AH,'MATCH!$'
INF4 DB 0DH,0AH,'NO MATCH!$'
STR1 DB 81
DB ?
DB 80 DUP(0)
STR2 DB 81
DB ?
DB 80 DUP(0)
DATE ENDS
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME DS:DATE, SS:STACK, CS:CODE, ES:DATE
START:
MOV AX,DATE
MOV DS,AX
MOV ES,AX

LEA DX,INF1
MOV AH,09H
INT 21H

LEA DX,STR1
MOV AH,0AH
INT 21H

LEA DX,INF2
MOV AH,09H
INT 21H

LEA DX,STR2
MOV AH,0AH
INT 21H

MOV AL,[STR1+1]
CMP AL,[STR2+1]
JNZ J2
MOV CL,[STR1+1]
MOV CH,00H
LEA SI,STR1+2
LEA DI,STR2+2
CLD

REPZ CMPSB
JZ J2
LEA DX,INF4
JMP J3
J2:LEA DX,INF3
J3:MOV AH,09H
INT 21H

MOV AH,4CH
INT 21H
CODE ENDS
END START

总是显示MATCH!
[解决办法]

     MOV AL,[STR1+1]
CMP AL,[STR2+1]
JNZ J2 ; 这里转错地方了八

读书人网 >汇编语言

热点推荐