I am making a program in Assembly language x8086 environment. According to me and all possible logic my code is fine but i don't know why it keeps showing me that 'Not Palindrome'. I'll be thankful if anyone can guide me what's wrong in my code.
Code:
.MODEL SMALL
.STACK 64H
.DATA
STRING DB ?
MSG1 DB 'PALINDROME$'
MSG2 DB 'NOT PALINDROME$'
MSG3 DB 'ENTER STRING:  $'
NEW DB 0AH,0DH
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AH,9
LEA DX,MSG3
INT 21H
MOV BX,OFFSET STRING
INPUT:
    MOV AH,1
    INT 21H
    CMP AL,13
    JE FIND_PALINDROME
    MOV [BX],AL
    INC BX
    JMP INPUT
FIND_PALINDROME:
MOV DI,OFFSET STRING
MOV CX,4
CHECK:
    MOV DX,[BX]
    CMP [DI],DX
    JNE EXIT
    INC DI
    DEC BX
    LOOP CHECK
    MOV AH,9
    LEA DX,MSG1
    INT 21H
    JMP EXIT_ALL
EXIT:
    MOV AH,9
    LEA DX,MSG2
    INT 21H
    EXIT_ALL:
    MOV AH,4CH
    INT 21H
    MAIN ENDP
    END MAIN
 
    