You are on page 1of 5

DATA SEGMENT

STR1 DB "ENTER YOUR STRING HERE ->$"


STR2 DB "YOUR STRING IS ->$"
STR3 DB "REVERSE STRING IS ->$"
INSTR1 DB 20 DUP("$")
RSTR DB 20 DUP("$")
NEWLINE DB 10,13,"$"
N DB ?
S DB ?
MSG1 DB "STRING IS PALINDROME$"
MSG2 DB "STRING IS NOT PALINDROME$"
A DB "1"

DATA ENDS

CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:

MOV AX,DATA
MOV DS,AX

LEA SI,INSTR1

;GET STRING
MOV AH,09H
LEA DX,STR1
INT 21H

MOV AH,0AH
MOV DX,SI
INT 21H

MOV AH,09H
LEA DX,NEWLINE
INT 21H

;PRINT THE STRING

MOV AH,09H
LEA DX,STR2
INT 21H

MOV AH,09H
LEA DX,INSTR1+2
INT 21H

MOV AH,09H
LEA DX,NEWLINE
INT 21H

;PRINT THE REVERSE OF THE STRING

MOV AH,09H
LEA DX,STR3
INT 21H

MOV CL,INSTR1+1
ADD CL,1
ADD SI,2

L1:
INC SI

CMP BYTE PTR[SI],"$"


JNE L1

DEC SI

LEA DI,RSTR

L2:MOV AL,BYTE PTR[SI]

MOV BYTE PTR[DI],AL

DEC SI
INC DI
LOOP L2

MOV AH,09H
LEA DX,NEWLINE
INT 21H

MOV AH,09H
LEA DX,RSTR
INT 21H

MOV AH,09H
LEA DX,NEWLINE
INT 21H
;PRINT THE STRING IS PALINDROME OR NOT

LEA SI,INSTR1
LEA DI,RSTR

MOV AH,09H
LEA DX,NEWLINE
INT 21H

ADD SI,2

L7:
MOV BL,BYTE PTR[DI]

CMP BYTE PTR[SI],BL


JNE LL2

INC SI
INC DI

MOV BL,BYTE PTR[DI]

MOV AH,02H
MOV DL,BL
INT 21H

MOV AH,09H
LEA DX,NEWLINE
INT 21H

CMP BYTE PTR[DI],"$"


JNE L7

MOV AH,09H
LEA DX,NEWLINE
INT 21H

MOV AH,09H
LEA DX,MSG1
INT 21H
JMP L5

LL2:
MOV AH,09H
LEA DX,NEWLINE
INT 21H

MOV AH,09H
LEA DX,MSG2
INT 21H

L5:

MOV AH,4CH
INT 21H

CODE ENDS
END START

;OUTPUT:-
;Z:\SEM3\SS\21-30>P26
;ENTER YOUR STRING HERE ->ANKIT
;YOUR STRING IS ->ANKIT
;REVERSE STRING IS ->
;TIKNA

;STRING IS NOT PALINDROME

;ALP TO FIND WHETHER A GIVEN NUMBER IS PALINDROME OR NOT.MODEL SMALL.STACK


1000H.DATAMSG1 DB "THE GIVEN STRING IS PALINDROME $"MSG2 DB "THE GIVEN STRING
IS NOT A PALINDROME $".CODEMAIN PROCMOV AX,@DATAMOV DS,AXXOR SI,SIXOR
DI,DIMOV AH,2MOV DL,'?'INT 21HXOR CX,CXMOV AH,01HINT 21HWHILE: CMP AL,0DHJE
PENDMOV SI,AXPUSH AXADD SI,02HINC CXINT 21HJMP WHILEPEND: MOV AH,02HMOV
DL,0DHINT 21HMOV DL,0AHINT 21H TOP: JCXZ COMPAREPOP DXMOV DI,DXINT 21HADD
DI,02HLOOP TOPCOMPARE:CMP SI,DIJE MESSAGE1XOR DX,DXLEA DX,MSG2MOV AH,09HINT
21HJMP EXITMESSAGE1:LEA DX,MSG1MOV AH,09HINT 21HEXIT: MOV AH,4CHINT 21HMAIN
ENDPEND MAIN;ALP TO REVERSE A STRING

You might also like