Преобразовать символьную строку заданной длины, изменив все прописные буквы латинского алфавита на знак % - Assembler

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

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

Преобразовать символьную строку заданной длины, изменив все прописные буквы латинского алфавита на знак %.

Решение задачи: «Преобразовать символьную строку заданной длины, изменив все прописные буквы латинского алфавита на знак %»

textual
Листинг программы
mov si,string0
mov di,si
mov cx,string0.len
cld
loop0:
lodsb
cmp al,'A'
jb @f
cmp al,'Z'
ja @f
add al,20h
@@:
stosb
dec cx
jnz loop0

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

  1. mov si,string0 - Переменная si содержит адрес первой символа строки string0.
  2. mov di,si - Переменная di содержит адрес первой символа строки string0.
  3. mov cx,string0.len - Переменная cx содержит длину строки string0.
  4. cld - Код подготавливает вывод на экран, устанавливая флаг направления в позицию направо.
  5. loop0: - Начинается цикл, который будет выполняться до тех пор, пока не будут выполнены определенные условия.
  6. lodsb - Код загружает в регистр al следующий символ из строки string0 и увеличивает адрес на 1.
  7. cmp al,'A' - Код сравнивает символ в регистре al с символом 'A'. Если символ в регистре al меньше 'A', то код переходит к следующему пункту.
  8. jb @f - Если символ в регистре al меньше 'A', то код переходит к метке @f.
  9. cmp al,'Z' - Код сравнивает символ в регистре al с символом 'Z'. Если символ в регистре al меньше 'Z', то код переходит к следующему пункту.
  10. ja @f - Если символ в регистре al больше или равен 'Z', то код переходит к метке @f.
  11. add al,20h - К символу в регистре al добавляется значение 20, что приводит к замене символа на знак '%'.
  12. stosb - Символ из регистра al записывается в память по адресу di.
  13. dec cx - Уменьшается значение переменной cx на 1.
  14. jnz loop0 - Если значение переменной cx больше 0, то код переходит к началу цикла loop0.
  15. Код завершает работу.

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


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

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

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