Перевод в заглавные буквы 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

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

  1. Объявлены две переменные в сегменте данных: string (строка) и stack (стек).
  2. Начальный адрес стека установлен в 255,0,255 (для примера, заглавные буквы не переводятся).
  3. Код начинается с сегментации регистров.
  4. Далее выполняется проверка символа в строке на возможность перевода в заглавную букву.
  5. Если символ меньше или равен 90 (U), то он переводится в заглавную букву.
  6. Если символ больше 90 (U), но меньше или равен 122 (z), то он переводится в строчную букву.
  7. Если символ больше 122 (z), то он остается без изменений.
  8. В конце строки добавляется символ '$'.
  9. Выполняется вывод строки на экран.
  10. Выполняется вывод символа возврата каретки и символа перевода строки.
  11. Выполняется вывод строки на экран с использованием функции 9 (D).
  12. Выполняется выход из программы.

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


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

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

15   голосов , оценка 3.467 из 5