Вывод измененной строки
Задание следующие: нужно написать EXE программу которая выводит строку "Input string", за тем изменить эту строку так чтобы первую и последнюю букву строки изменить на строчную, а остальные на прописные. Реализовал программу которая выводит все буквы прописными а как сделать так как в задании не знаю(Есть идея сделать сначала чтобы только первую букву строки менять на строчную в цикле, а потом последнюю но только не знаю сработает ли это и как реализовать)
.model tiny
.data
Sos db "Input string $"
len dw $-Sos
.code
main proc
mov ax,@data
mov ds,ax
mov dx,offset Sos
mov ah,09h
int 21h
mov cx,len
lst:
mov di,cx
cmp Sos[di+0],60h
jl next
sub Sos[di+0],20h
next:
loop lst
mov ax,@data
mov ds,ax
mov dx, offset Sos
mov ah,09h
int 21h
mov ax,4c00h
int 21h
main endp
end main
code ends
Ответы (1 шт):
Автор решения: santavital
→ Ссылка
; Строка должна заканчиваться $ и не должна полностью состоять из пробелов
mov ds,ax
mov dx,offset Sos
xor di, di
NextSymbol:
cmp [dx][di], ' '
jne Symbol1ToUpper
inc di
jmp NextSymbol
Symbol1ToUpper:
sub [dx][di], Число ; Преобразовать в верхний/нижний регистр
xor di, di
CheckForEndStr:
cmp [dx][di], '$'
je FoundEndOfStr
inc di
jmp CheckForEndStr
FoundEndOfStr:
dec di
cmp [dx][di], ' '
je FoundEndOfStr
sub [dx][di], Число ; Преобразовать в верхний/нижний регистр