Showing posts with label MASM. Show all posts
Showing posts with label MASM. Show all posts

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






























MASM PROGRAM TO CONVERT THE CASE OF A CHARACTER (WITH ALGORITHM)

MASM PROGRAM TO CONVERT THE CASE OF A CHARACTER


AIM : TO CONVERT THE CASE OF A CHARACTER

ALGORITHM :

STEP 1 : INPUT THE CHARACTER

STEP 2 : MOVE THE CHARACTER IN AL TO CL

STEP 3 : MOVE CL TO DL

STEP 4 : COMPARE DL WITH 01H

STEP 5 : JUMP IF CARRY TO 8

STEP 6 : SUBTRACT DL WITH 20H

STEP 7 : JUMP IF NO CARRY TO 9

STEP 8 : ADD DL WITH 20H

STEP 9 : PRINT THE CHARACTER

STEP 10 : TERMINATE THE PROGRAM

STEP 11 : STOP


PROGRAM :

CODE SEGMENT
ASSUME CS: CODE
                START:
                             MOV AH,01H
                             INT 21H
                             MOV CL,AL
                             MOV DL,CL
                             CMP DL,61H
                             JC L1
                             SUB DL,20H
                             JNC L2
                             L1:
                                     ADD DL,20H
                             L2:
                                    MOV AH,02H
                                    INT 21H
                                    MOV AH,4CH
                                    INT 21H
                            CODE ENDS
              END START


OUTPUT :

aA







MASM PROGRAM TO DISPLAY "HELLO" (WITH ALGORITHM)


MASM PROGRAM TO DISPLAY "HELLO" (WITH ALGORITHM) 


AIM : TO DISPLAY HELLO

ALGORITHM :

STEP 1 : WRITE DATA SEGMENT

STEP 2 : MOVE DATA TO AX

STEP 3 : MOVE AX TO DS

STEP 4 : DISPLAY THE MESSAGE IN DS

STEP 5 : PROGRAM TERMINATES

STEP 6 : STOP


PROGRAM :

DATA SEGMENT
          MSG DB "HELLO$"
DATA ENDS
CODE SEGMENT
          ASSUME CS:CODE,DS:DATA
START:
          MOV AX,DATA
          MOV DS,AX
          LEA DX,MSG
          MOV AH,09H
          INT 21H
          MOV AH,4CH
          INT 21H
          CODE ENDS
END START


OUTPUT :

HELLO