This is an 8086 program to check whether a string is a palindrome or not. If you have any doubts, please let me know.
.MODEL SMALL
.DATA
MSG DB 'ENTER A STRING:','$'
INP DB 100,0,100 DUP('$')
MSG2 DB 0AH, 0DH,'PALINDROME','$'
MSG3 DB 0AH, 0DH,'NOT A PALINDROME','$'
.CODE
START:
MOV AX,@DATA
MOV DS,AX
LEA DX,MSG
MOV AH,09H
INT 21H
LEA DX,INP
MOV AH,0AH
INT 21H
LEA SI,INP
LEA DI,INP
MOV CX,0000H
CONT: MOV AL,[DI+02H]
CMP AL,0DH
JE L1
INC CX
INC DI
JMP CONT
L1: DEC DI
L2: MOV AL,[DI+02H]
CMP [SI+02H],AL
JNE NP
INC SI
DEC DI
LOOP L2
P: LEA DX,MSG2
MOV AH,09H
JMP LAST
NP: LEA DX,MSG3
MOV AH,09H
LAST:INT 21H
.EXIT
END START
.MODEL SMALL
.DATA
MSG DB 'ENTER A STRING:','$'
INP DB 100,0,100 DUP('$')
MSG2 DB 0AH, 0DH,'PALINDROME','$'
MSG3 DB 0AH, 0DH,'NOT A PALINDROME','$'
.CODE
START:
MOV AX,@DATA
MOV DS,AX
LEA DX,MSG
MOV AH,09H
INT 21H
LEA DX,INP
MOV AH,0AH
INT 21H
LEA SI,INP
LEA DI,INP
MOV CX,0000H
CONT: MOV AL,[DI+02H]
CMP AL,0DH
JE L1
INC CX
INC DI
JMP CONT
L1: DEC DI
L2: MOV AL,[DI+02H]
CMP [SI+02H],AL
JNE NP
INC SI
DEC DI
LOOP L2
P: LEA DX,MSG2
MOV AH,09H
JMP LAST
NP: LEA DX,MSG3
MOV AH,09H
LAST:INT 21H
.EXIT
END START
view the output
ReplyDelete