Write a program to read a string and separate the words from the string. Display each word at the center of each lineof a clear screen with blue background and cyan foreground.
SOLUTION:
DOSSEG
.MODEL SMALL
.STACK
.DATA
REQ DB 'PLEASE TYPE A SENTENCE (80 Characters Max.)',0AH,0DH,'$'
MAX DB 80
ACT DB ?
CHAR DB 80 DUP (?)
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
LEA DX,REQ ;Request user to type sentence
MOV AH,09H
INT 21H
MOV AH,0AH ;Read string
MOV DX,OFFSET MAX
INT 21H
MOV AH,06H ;request scroll ; clears screen
MOV AL,00H ;full screen
MOV BH,16H ; set attribute,
MOV CX,0000 ;top left corner
MOV DX,184FH ;bottom right corner of box
INT 10H ; interrupt call
LEA DI,CHAR
MOV CL,ACT
MOV CH,00
MOV BH,CH ; PAGE 0
MOV DH,CH
MOV DL,40
MOV AH,02H
INT 10H
agn:CMP [DI],' '
JE nextline
MOV DL,[DI]
MOV AH,02H
INT 21H
JMP skip
nextline: INC DH
MOV DL,40
INT 10H
skip: INC DI
LOOP AGN
MOV AX,4C00H
INT 21H
MAIN ENDP
END MAIN
SOLUTION:
DOSSEG
.MODEL SMALL
.STACK
.DATA
REQ DB 'PLEASE TYPE A SENTENCE (80 Characters Max.)',0AH,0DH,'$'
MAX DB 80
ACT DB ?
CHAR DB 80 DUP (?)
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
LEA DX,REQ ;Request user to type sentence
MOV AH,09H
INT 21H
MOV AH,0AH ;Read string
MOV DX,OFFSET MAX
INT 21H
MOV AH,06H ;request scroll ; clears screen
MOV AL,00H ;full screen
MOV BH,16H ; set attribute,
MOV CX,0000 ;top left corner
MOV DX,184FH ;bottom right corner of box
INT 10H ; interrupt call
LEA DI,CHAR
MOV CL,ACT
MOV CH,00
MOV BH,CH ; PAGE 0
MOV DH,CH
MOV DL,40
MOV AH,02H
INT 10H
agn:CMP [DI],' '
JE nextline
MOV DL,[DI]
MOV AH,02H
INT 21H
JMP skip
nextline: INC DH
MOV DL,40
INT 10H
skip: INC DI
LOOP AGN
MOV AX,4C00H
INT 21H
MAIN ENDP
END MAIN