You are on page 1of 8

4. Programs on String Instructions.

a) W. A. L. P. to find the length of a given string.


b) W. A. L. P. to move a string from one memory location to another memory location.
c) W. A. L. P. to perform string comparison.
d) W. A. L. P. to find the whether the given string is palindrome or not.
e) W. A. L. P. to find the alphabetical order of a given string.

AIM: To write an Assembly Language Program (​ALP​) on Strings

APPARATUS: 1. Personal Computer

2. TASM Software

PROGRAM:

A). LENGTH OF A GIVEN STRING

DATA SEGMENT

STRING DB 'BAPATLA','$'

LENGTH DB ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA.ES:EXTRA

START: MOV AX,DATA

MOV DS,AX

MOV ES,AX

XOR AX,AX
XOR CX,CX

MOV AL,'$'

LEA SI,STRING

L1: CMP AL,[SI]

JZ L2

INC CL

INC SI

JMP L1

L2: MOV LENGTH,CL

INT 21H

CODE ENDS

END START
B). M​ove a sting byte from one memory location to another memory location.

DATA SEGMENT

STR1 DB 'LIRIL'

STR2 DB ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA

START: MOV AX,DATA

MOV DS,AX

MOV ES,AX

LEA SI,STR1

LEA DI,STR2

MOV CL,05H

CLD

REPE MOVSB

INT 21H

CODE ENDS

END START
​C). STRING COMPARISION

DATA SEGMENT

PASSWORD DB 'BAPATLA'

NEWSTR DB 'BAPATLA'

STR1 DB 'THE GIVEN STRING IS VALID','$'

STR2 DB 'THE GIVEN STRING IS INVALID','$'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:EXTRA

START: MOV AX,DATA

MOV DS,AX

MOV ES,AX

MOV CL,07H

LEA SI,PASSWORD

LEA DI,NEWSTR

REPE CMPSB

JNZ L1

LEA DX,STR1

JMP L2

L1: LEA DX,STR2


L2: MOV AH,09H

INT 21H

MOV AH,01H

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

D) Write an ALP to find given string is palindrome or not.

DATA SEGMENT

STR1 DB 'LIRIL'

STR2 DB 5 DUP(0)

MES1 DB 'STRING IS PALENDROME',’$’

MES2 DB 'STRING IS NOT PALENDROME',’$’

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA

START: MOV AX,DATA


MOV DS,AX

MOV ES,AX

LEA SI,STR1

LEA DI,STR2+04H

MOV CL,05H

L1: CLD

LODSB

STD

STOSB

LOOP L1

LEA SI,STR1

LEA DI,STR2

CLD

MOV CL,05H

REPE CMPSB

JNZ L2

LEA DX,MES1

JMP L3

L2: LEA DX,MES2

L3: MOV AH,09H

INT 21H

MOV AH,4CH
INT 21H

CODE ENDS

END START

E). ALPHABETICAL ORDER OF A GIVEN STRING

DATA SEGMENT

STR DB 'BAPTENGC','$'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

XOR AX,AX

MOV CL,07H

L1: MOV DL,CL


MOV SI,OFFSET STR

L2: MOV AL,[SI]

CMP AL,[SI+1]

JB L3

XCHG AL,[SI+1]

XCHG AL,[SI]

L3: INC SI

DEC DL

JNZ L2

DEC CL

JNZ L1

MOV AH,09H

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

You might also like