Saturday 26 August 2017

MASM PROGRAM FOR STRING REVERSAL (WITH ALGORITHM)

MASM PROGRAM FOR STRING REVERSAL (WITH ALGORITHM)

AIM : TO REVERSE A STRING

ALGORITHM :

STEP 1 : WRITE THE DATA SEGMENT

STEP 2 : MOVE DATA TO AX

STEP 3 : MOVE AX TO DS

STEP 4 : LOAD EFFECTIVE ADDRESS OF MSG1 TO DX

STEP 5 : PRINT MESSAGE

STEP 6 : MOVE 0DH TO DL

STEP 7 : LOAD EFFECTIVE ADDRESS OF ST1 TO S1

STEP 8 : MOVE 00H TO CL

STEP 9 : INPUT A CHARACTER

STEP 10 : COMPARE IF IT IS A LINE FEED

STEP 11 : JUMP IF ZERO TO STEP 18

STEP 12 : INCREMENT CL

STEP 13 : INCREMENT SI

STEP 14 : MOVE AL TO THE CONTENT OF SI

STEP 15 : INCREMENT SI

STEP 16 : INCREMENT CL

STEP 17 : JUMP TO STEP 9

STEP 18 : MOVE 0AH TO DL

STEP 19 : MOVE 0DH TO DL

STEP 20 : LOAD EFFECTIVE ADDRESS OF MSG2 TO DX

STEP 21 : PRINT THE MESSAGE

STEP 22 : MOVE THE CONTENT OF SI TO DL

STEP 23 : PRINT THE CHARACTER WHERE VALUE IN DL

STEP 24 : DECREMENT SI

STEP 25 : DECREMENT CL

STEP 26 : COMPARE 00H TO CL

STEP 27 : JUMP IF NOT ZERO TO STEP 21

STEP 28 : TERMINATE THE PROGRAM

STEP 29 : STOP


PROGRAM :

DATA SEGMENT
            ST1 DB 100 DUP(?)
            MSG1 DB "ENTER THE STRING $"
            MSG2 DB "REVERSED STRING $"
DATA ENDS

CODE SEGMENT
            ASSUME CS:CODE
            START:
                         MOV AX,DATA
                         MOV DS,AX
                         LEA DX,MSG1
                         MOV AH,09H
                         INT 21H
                         LEA SI,ST1
                         MOV CL,00H
           L1:
                         MOV AH,01H
                         INT 21H
                         CMP AL,0DH
                         JZ L2
                         INC CL
                         INC SI
                         MOV [SI],AL
                         INC SI
                         INC CL
                         JMP L1
          L2:
                         MOV DL,0AH
                         INT 21H
                         MOV DL,0DH
                         INT 21H
                         LEA DX,MSG2
                         MOV AH,09H
                         INT 21H
         L3:
                         MOV DL,[SI]
                         MOV AH,02H
                         INT 21H
                         DEC SI
                         DEC CL
                         CMP CL,00H
                         JNZ L3
                         MOV AH,4CH
                         INT 21H
        CODE ENDS
        END START


OUTPUT :

ENTER THE STRING : CAT
REVERSED STRING : TAC






























No comments:

Post a Comment