Преобразовать все малые буквы строки в большие - Assembler

Узнай цену своей работы

Формулировка задачи:

Ввести с клавиатуры строку. Преобразовать все малые буквы в большие. Если буква уже большая, то ничего не делать Вывести результаты на экран.

Решение задачи: «Преобразовать все малые буквы строки в большие»

textual
Листинг программы
data segment
IN_STR db 100, 100 dup ('$') ; буфер ввода
OUT_STR db 10 dup (’$’) ; буфер вывода
data ends
code segment
assume cs:code, ds:data
START: mov ax, data
mov ds, ax ; Загрузить сегментный адрес данных
; Ввод строки
lea dx, IN_STR
mov ah, 0ah
int 21h
; Обработка
xor ah, ah ; обнуление старшего байта AX
lea bx, IN_STR+2 ; адрес начала введённой строки
xor cx, cx
mov cl, IN_STR+1 ; количество введенных символов
ВВ: mov al, [BX] ; очередной символ строки
cmp al,61h
jb jmp m1
cmp al, 7Ah
M1:
ja jmp M1
xor al,20h
 cmp al, A0h
jb M2
cmp al, AFh
ja M2
M2:
xor al, 20h
cmp al, E0h
jb M3 
cmp al, EFh
ja M3
M3:
xor al,70h
loop BB
out:
mov ah, 09h
lea dx,out_str+1
int 21h
mov ah,0
int 16h
mov ah, 4ch
int 21h
code ends
end START

Объяснение кода листинга программы

В этом коде выполняется следующая последовательность действий:

  1. Ввод строки с помощью функции BIOS int 21h, функция 0ah (ввод строки).
  2. Обнуление старшего байта AX.
  3. Загрузка адреса начала введенной строки в BX.
  4. Загрузка количества введенных символов в CX.
  5. Проверка каждого символа строки на размер:
    • Если символ меньше 61 (‘a’), то он считается большой буквой.
    • Если символ больше 7A (‘z’), то он считается малой буквой.
    • Если символ меньше 61 (‘a’), то он инвертируется (преобразуется в большую букву).
    • Если символ больше 7A (‘z’), то он инвертируется (преобразуется в малую букву).
    • Если символ меньше 61 (‘a’), то он инвертируется (преобразуется в большую букву).
    • Если символ больше 7A (‘z’), то он инвертируется (преобразуется в малую букву).
    • Если символ меньше 61 (‘a’), то он инвертируется (преобразуется в большую букву).
    • Если символ больше 7A (‘z’), то он инвертируется (преобразуется в малую букву).
    • Если символ меньше 61 (‘a’), то он инвертируется (преобразуется в большую букву).
    • Если символ больше 7A (‘z’), то он инвертируется (преобразуется в малую букву).
  6. Повторение шагов 5 для каждого симвома строки.
  7. Вывод преобразованной строки с помощью функции BIOS int 21h, функция 09h (вывод строки).
  8. Вывод символа новой строки с помощью функции BIOS int 16h.
  9. Вывод символа конца строки с помощью функции BIOS int 21h, функция 4ch.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы