Преобразовать все малые буквы строки в большие - 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
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- Ввод строки с помощью функции BIOS int 21h, функция 0ah (ввод строки).
- Обнуление старшего байта AX.
- Загрузка адреса начала введенной строки в BX.
- Загрузка количества введенных символов в CX.
- Проверка каждого символа строки на размер:
- Если символ меньше 61 (‘a’), то он считается большой буквой.
- Если символ больше 7A (‘z’), то он считается малой буквой.
- Если символ меньше 61 (‘a’), то он инвертируется (преобразуется в большую букву).
- Если символ больше 7A (‘z’), то он инвертируется (преобразуется в малую букву).
- Если символ меньше 61 (‘a’), то он инвертируется (преобразуется в большую букву).
- Если символ больше 7A (‘z’), то он инвертируется (преобразуется в малую букву).
- Если символ меньше 61 (‘a’), то он инвертируется (преобразуется в большую букву).
- Если символ больше 7A (‘z’), то он инвертируется (преобразуется в малую букву).
- Если символ меньше 61 (‘a’), то он инвертируется (преобразуется в большую букву).
- Если символ больше 7A (‘z’), то он инвертируется (преобразуется в малую букву).
- Повторение шагов 5 для каждого симвома строки.
- Вывод преобразованной строки с помощью функции BIOS int 21h, функция 09h (вывод строки).
- Вывод символа новой строки с помощью функции BIOS int 16h.
- Вывод символа конца строки с помощью функции BIOS int 21h, функция 4ch.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д