TITLE Move the line of text entered by user from right to left in blue background and white foreground.
DOSSEG ;don't use 'DOSSEG' for emo8086
.MODEL SMALL
.STACK 64H
.DATA
REQ DB 'PLEASE TYPE A SENTENCE (80 Characters Max.)',0AH,0DH,'$'
REQ1 DB 'Enter any key to exit.','$'
MAX DB 80
ACT DB ?
CHAR DB 80 DUP (?)
CHAR1 DB 80 DUP (' ')
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV ES,AX
LEA DX,REQ ;Request user to type sentence
MOV AH,09H
INT 21H
MOV AH,0AH ;Read string
MOV DX,OFFSET MAX
AGAIN: INT 21H
TEST ACT,0FFH ; If no character is typed
JZ AGAIN
MOV AH,06H
MOV AL,00H
MOV BH,16H
MOV CX,0000
MOV DX,184FH
INT 10H
MOV CL,ACT ;copy characters from char to char1
MOV CH,0H
MOV SI,0
RE1:MOV AL,CHAR[SI]
MOV CHAR1[SI],AL
INC SI
LOOP RE1
LEA BP,CHAR1
MOV CX,1H ;length initially 1
MOV DH,5 ;5th Row
MOV DL,80 ;Last column
MOV AL, 01
MOV BX,17H
MOV AH,13H
NXT:DEC DL
INT 10H
CALL DELAY
INC CX
TEST DL,0FFH
JNZ NXT
LEA DX,REQ1 ;Request user to enter a key
MOV AH,09H
INT 21H
MOV AH,07 ;To get key begore exit
INT 21H
MOV AX,4C00H
INT 21H
MAIN ENDP
DELAY PROC
PUSH CX ;delay
MOV CX,01H
RE: LOOP RE
POP CX
RET
DELAY ENDP
END MAIN
DOSSEG ;don't use 'DOSSEG' for emo8086
.MODEL SMALL
.STACK 64H
.DATA
REQ DB 'PLEASE TYPE A SENTENCE (80 Characters Max.)',0AH,0DH,'$'
REQ1 DB 'Enter any key to exit.','$'
MAX DB 80
ACT DB ?
CHAR DB 80 DUP (?)
CHAR1 DB 80 DUP (' ')
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV ES,AX
LEA DX,REQ ;Request user to type sentence
MOV AH,09H
INT 21H
MOV AH,0AH ;Read string
MOV DX,OFFSET MAX
AGAIN: INT 21H
TEST ACT,0FFH ; If no character is typed
JZ AGAIN
MOV AH,06H
MOV AL,00H
MOV BH,16H
MOV CX,0000
MOV DX,184FH
INT 10H
MOV CL,ACT ;copy characters from char to char1
MOV CH,0H
MOV SI,0
RE1:MOV AL,CHAR[SI]
MOV CHAR1[SI],AL
INC SI
LOOP RE1
LEA BP,CHAR1
MOV CX,1H ;length initially 1
MOV DH,5 ;5th Row
MOV DL,80 ;Last column
MOV AL, 01
MOV BX,17H
MOV AH,13H
NXT:DEC DL
INT 10H
CALL DELAY
INC CX
TEST DL,0FFH
JNZ NXT
LEA DX,REQ1 ;Request user to enter a key
MOV AH,09H
INT 21H
MOV AH,07 ;To get key begore exit
INT 21H
MOV AX,4C00H
INT 21H
MAIN ENDP
DELAY PROC
PUSH CX ;delay
MOV CX,01H
RE: LOOP RE
POP CX
RET
DELAY ENDP
END MAIN