Перевод в заглавные буквы Assembler
Формулировка задачи:
Здравствуйте, не ругайте косорукого,подскажите ,пожалуйста, почему не работает перевод ... ( И как найти символ по середине слова... Был в других темах, но не понял код
.model small .stack 100h .data string db 256 dup ('$') .code start: string1 EQU string[2] mov ax, @data mov ds, ax xor dx,dx mov ah,0Ah mov [string], 253 lea dx,string int 21h lea si,string1 L1: mov bl, [si] cmp bl, 64 jbe konec cmp bl, 90 ja stroki add bl, 32 mov [si], bl jmp konec stroki: cmp bl, 97 jb konec cmp bl, 122 ja konec mov [si], bl konec: inc si loop L1 mov bl, byte ptr '$' mov [si], bl mov ah, 09h lea dx, [si] int 21h mov ax,4c00h int 21h end start
Решение задачи: «Перевод в заглавные буквы Assembler»
textual
Листинг программы
.model small .386 .data string db 255,0,255 dup('$') .stack db 255 dup(?) .code start: mov ax,@data mov ds,ax mov ah,0Ah lea dx,string int 21h lea si,string[2] l1: mov bl,byte ptr [si] cmp bl,64 jbe konec cmp bl,90 ja stroki add bl,32 mov byte ptr [si],bl jmp konec stroki: cmp bl,97 jb konec cmp bl,122 ja konec and bl,11011111b mov byte ptr [si],bl konec: inc si loop l1 mov byte ptr [si],'$' mov ah,02h mov dl,0Dh int 21h mov ah,02h mov dl,0Ah int 21h mov ah,09h lea dx,string[2] int 21h mov ah,4Ch mov al,00h int 21h end start
Объяснение кода листинга программы
- Объявлены две переменные в сегменте данных: string (строка) и stack (стек).
- Начальный адрес стека установлен в 255,0,255 (для примера, заглавные буквы не переводятся).
- Код начинается с сегментации регистров.
- Далее выполняется проверка символа в строке на возможность перевода в заглавную букву.
- Если символ меньше или равен 90 (U), то он переводится в заглавную букву.
- Если символ больше 90 (U), но меньше или равен 122 (z), то он переводится в строчную букву.
- Если символ больше 122 (z), то он остается без изменений.
- В конце строки добавляется символ '$'.
- Выполняется вывод строки на экран.
- Выполняется вывод символа возврата каретки и символа перевода строки.
- Выполняется вывод строки на экран с использованием функции 9 (D).
- Выполняется выход из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д