小弟编了一个关于在字符串中找关键字的程序,可编译到start5时cmp指令总出错,请大神帮忙。悬赏50.
DATA SEGMENT
DA1 DB 'PLEASE INPUT STRING$'
DA2 DB 'PLEASE INPUT CHARACTE$'
DA3 DB 'FOUND$'
DA4 DB 'NOT FOUND$'
DA5 DB 'PLEASE INPUT STRING LENGTH$'
DA6 DB 'ERROR,INPUT AGAIN$'
STR DB 10H,?,10H DUP(?)
LEG DW ?
KEY DB ?
DATA ENDS
CRLF MACRO
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
ENDM
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START1: MOV DX,DATA
MOV DS,DX
LEA DX,DA1
MOV AH,9
INT 21H
START2: CRLF
LEA DX,DA5
MOV AH,9
INT 21H
LEA DX,LEG
MOV AH,01H
INT 21H
START3: CRLF
LEA DX,DA1
MOV AH,9
INT 21H
LEA DX,STR
MOV AH,0AH
INT 21H
START4: CRLF
LEA DX,DA2
MOV AH,9
INT 21H
LEA DX,KEY
MOV AH,0AH
INT 21H
START5: LEA BX,STR+1
MOV CX,[BX]
LEA DX,LEG
CMP BX,[DX]
JE START6
JMP START3
START6: LEA BX,STR+2
LP1: MOV AL,[BX]
INC BX
CMP AL,KEY
JE FOUND
DEC CX
CMP CX,0
JE NOTFOUND
JMP LP2
LP2: MOV AL,[BX]
INC BX
CMP AL,KEY
JE FOUND
DEC CX
CMP CX,0
JE NOTFOUND
JMP LP1
FOUND: CRLF
LEA DX,DA3
MOV AH,9
INT 21H
NOTFOUND: CRLF
LEA DX,DA4
MOV AH,9
INT 21H
CODE ENDS
END START1