У меня возникла проблема с моей программой сборки для подсчета количества заглавных букв, преобразования регистров и изменения строки.это не позволяет мне вводить строку.Пожалуйста, помогите
это мои данные
.data
buffer BYTE 128 dup(0)
msg1 BYTE "Enter a string of at most 128 characters:",0dh, 0ah, 0
msg2 BYTE "Here it is in lowercase and in reverse order:", 0dh, 0ah, 0
msg3 BYTE 0dh, 0ah, "there are",0
msg4 BYTE "lower-case characters ", 0dh, 0ah, 0
countLower BYTE 0
моя область ввода
.code
main PROC
mov ecx, 0
mov eax, 0
mov edx, OFFSET msg1
call WriteString
call ReadString
сравнить размер строки
read_again:
cmp ecx, 128
ja endread
call ReadChar
cmp al, 0Dh
je display
cmp al, 61h
jae test_lower
cmp al, 41h
jb store
cmp al, 5Ah
ja store
add al, 20h
inc countLower
ja store
проверить последний символ
test_lower :
cmp al, 7Ah
ja store
sub al, 20h
store:
push eax
inc ecx
jmp read_again
endread:
lea esi, buffer
display:
jecxz quit
mov edx, OFFSET msg2
call WriteString
again:
pop eax
call WriteChar
loop again
mov edx, OFFSET msg3
call WriteString
movzx eax,countLower
call WriteDec
mov edx, OFFSET msg4
call WriteString
quit: