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