Сделать заглавным средний символ слова - Assembler (223654)
Формулировка задачи:
Уважаемые, нужно сделать заглавными средний символ слова, если длина слова нечетная; и символ, предшествующий середине, если длина слова четная. Слова разделяются пробелами. Каждое слово выводить с новой строки.
Понимаю,что нужно вычислить длину слова, поделить на 2 и уменьшить ascii код символа на 32,чтобы получить заглавную букву...но как это написать ...помогите,пожалуйста,чем сможете студенту
Решение задачи: «Сделать заглавным средний символ слова»
textual
Листинг программы
.model small .data str db 'yesterday all my troubles seemed so far away',0 .stack 100h .code start: mov ax,@data mov ds,ax lea si,str cld mov ax,3 ; инициализация экрана int 10h mov ah,0eh ; функция телетайпа cycle: ; сканим lodsb test al,al jz fin ; нуль-терминатор - закругляемся cmp al,' ' ; пробел - перевод строки je NL int 10h ; не пробел - просто вывод jmp cycle NL:call NewLine jmp cycle fin: ; финализация call NewLine ; выделяем среднюю букву в последнем слове xor ah,ah ; ждём нажатия и завершаемся int 16h mov ax,4c00h int 21h NewLine proc ; процедура выделения средней буквы и перевода строки mov ax,300h ; читаем позицию курсора int 10h dec dl shr dl,1 ; находим середину слова dec ah ; ставим туда курсор int 10h mov ah,8 ; и перезаписываем int 10h sub al,20h ; заглавной буквой mov ah,0eh ; возвращаем телетайп int 10h ; переходим на новую строку mov al,10 int 10h mov al,13 int 10h ret NewLine endp end
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д