Преобразовать текст, превратив строчные буквы в заглавные, а заглавные в строчные - Assembler
Формулировка задачи:
Дана последовательность заглавных и строчных латинских букв (строка текста). Преобразовать текст, превратив строчные буквы в заглавные, а заглавные в строчные. Вывести обе строки на экран. Помогите пожалуйста. Если получиться то распишите подробно действия, я просто только новичок
Решение задачи: «Преобразовать текст, превратив строчные буквы в заглавные, а заглавные в строчные»
textual
Листинг программы
; fasm code... ; строчные в заглавные, а заглавные в строчные. org 100h jmp start mes0 db 13,10,'fghdjGFDEVCB jghfkidlsgGGFDS GHCBVKDHSH tyghfbdj','$' len = ($ - mes0)-3 ; длина строки без 13,10,'$' start: mov ah,9 ; выводим текущую строку mov dx,mes0 ; int 21h ; mov si,mes0+2 ; адрес источника mov di,si ; он-же приёмник mov cx,len ; длина строки kLoop: lodsb ; берём байт из SI cmp al,' ' ; пробелы не трогаем je fuck ; xor al,20h ; у остальных ксорим бит(5) fuck: stosb ; сохраняем изменения loop kLoop ; мотаем цикл СХ-раз.. mov ah,9 ; выводим изменённыю строку mov dx,mes0 ; int 21h ; exit: xor ax,ax ; ждём клавишу.. int 16h ; int 20h ; выход!
Объяснение кода листинга программы
Выделила для вас основные этапы работы кода в виде нумерованного списка:
- Объявление переменной mes0, которая содержит исходную строку.
- Расчёт длины строки (len) без учёта символов 13, 10 и '$'.
- Начало выполнения программы (jmp start).
- Вывод исходной строки (mov ah,9; mov dx,mes0; int 21h).
- Начало цикла kLoop.
- Считывание байта из регистра SI.
- Проверка: является ли текущий байт пробелом?
- Если текущий байт — пробел, то переход к операции stosb.
- Если текущий байт не является пробелом, то изменение его регистра (xor al,20h).
- Сохранение изменённого символа в регистре SI (stosb).
- Выполнение цикла kLoop до тех пор, пока не будет выполнено условие выхода из цикла (cx равна len).
- Вывод изменённой строки (mov ah,9; mov dx,mes0; int 21h).
- Вход в бесконечный цикл (while), ожидая нажатия клавиши.
- Выход из программы (int 16h; int 20h).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д