当前位置: 代码迷 >> 汇编语言 >> 汇编CMPS比较两字符串是不是相等
  详细解决方案

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

热度:8353   发布时间:2013-02-26 00:00:00.0
汇编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  ;  这里转错地方了八
  相关解决方案