LSTRING SEGMENT
        ASSUME CS:LSTRING
MAIN    PROC
        CALL UP
        MOV  AX,4C00h
        INT  21h
MAIN    ENDP
UP      PROC
        PUSH BP
        MOV  BP,SP
        SUB  SP,25
        PUSH DS
        PUSH AX
        PUSH BX
        PUSH CX
        PUSH DX
        PUSH DI
        MOV  BX,BP
        SUB  BX,25
        MOV  BYTE PTR SS:[BX],0
        MOV  CX,24
LOOPI:  
        MOV  BX,BP
        SUB  BX,25
        INC  BYTE PTR SS:[BX]
        MOV  DH,0
        MOV  DL,BYTE PTR SS:[BX]
        MOV  DI,DX
        MOV  BYTE PTR SS:[BX+DI],'X'
        MOV  BYTE PTR SS:[BX+DI+1],'$'
        MOV  DX,SS
        MOV  DS,DX
        MOV  DX,BP
        SUB  DX,24
        MOV  AH,9
        INT  21h
        MOV  AH,2
        MOV  DL,13
        INT  21h
        MOV  DL,10
        INT  21h
        LOOP LOOPI
        POP  DI
        POP  DX
        POP  CX
        POP  BX
        POP  AX
        POP  DS
        MOV  SP,BP
        POP  BP
        RET
UP      ENDP
LSTRING ENDS
KELLER  SEGMENT STACK
        DW 256 DUP (?)
KELLER  ENDS
        END MAIN