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