I'm trying to write a program that reads 3 strings from the keyboard and then display 2 strings in lowercase and the last one in uppercase. Here's what I've got till now: I can read the string, but then it converts everything to uppercase. Is there anyway to convert only the last string? Thanks in advance
.MODEL SMALL
.DATA
MSG DB 0DH,0AH, 'ENTER A STRING: $'
MSG2 DB 0DH,0AH, ' YOUR STRING IS :-----> : $'
STR1 DB 255 DUP(?)
.CODE
BEGIN:
MOV AX,@DATA
MOV DS,AX
LEA DX,MSG
MOV AH,09H
INT 21H
LEA SI,STR1
MOV AH,01H
READ:
INT 21H
;MOV BL,AL
CMP AL,0DH
JE DISPLAY
SUB AL,20H
MOV [SI],AL
INC SI
;CMP BL,0DH
JMP READ
DISPLAY:
MOV AL,'$' ;caracter '$'
MOV [SI],AL ;
LEA DX,MSG2
MOV AH,09H
INT 21H
LEA DX,STR1
MOV AH,09H
INT 21H
; MOV AH,4CH
; INT 21H
.EXIT
END BEGIN
I'm using TASM.
Thank you everyone for your comments. I was able to solve it this way:
.MODEL SMALL
.STACK 100h
.DATA
Mensagem1 DB "Meu Prompt>>",'$',13,10
first DB 80 DUP (?)
.CODE
MOV AX, @DATA
MOV DS, AX
LEA DX, Mensagem1
MOV AH, 9
INT 21H
LEA SI, first
READ:
MOV AH, 01H
INT 21H
CMP AL, 13
JE DONE
OR AL, 20H
MOV [SI], AL
INC SI
CMP AL, 20H
JE READ2
JMP READ
READ2:
INT 21H
CMP AL, 13
JE DONE
OR AL, 20H
MOV [SI], AL
INC SI
CMP AL, 20H
JE READ3
JMP READ2
READ3:
INT 21H
CMP AL, 13
JE DONE
XOR AL, 20H
MOV [SI], AL
INC SI
JMP READ3
DONE:
MOV AL, '$'
MOV [SI], AL
LEA DX, Mensagem1
MOV AH, 9
INT 21H
LEA DX, first
MOV AH, 9
INT 21H
MOV AH,4CH
INT 21H
END