Найти в строке символ 'h', заменить его на ноль. Перенести эту строку в основной сегмент данных. - Assembler

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

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

в вспомогательном сегменте данных задана строка символов 'abcdefghkl'. найти в этой строке символ 'h', заменить его на ноль. перенести эту строку в основной сегмент данных. вывести сформированную строку на экран. помогите пожалуйстста, кто может

Решение задачи: «Найти в строке символ 'h', заменить его на ноль. Перенести эту строку в основной сегмент данных.»

textual
Листинг программы
  1. data segment
  2.     str2 db 20 dup('$')
  3. data ends
  4.  
  5. ext segment
  6.     str1 db 'abcdefghkl'
  7.     len1 = $-str1
  8. ext ends
  9.      
  10. stk segment stack
  11.     db 256 dup(?)
  12. stk ends
  13.  
  14. code segment
  15. assume cs:code, ds:data, es:ext, ss:stk
  16. start:
  17. mov ax,data
  18. mov ds,ax
  19.  
  20. mov ax,ext
  21. mov es,ax
  22.  
  23. mov al,'h'
  24. lea di,str1
  25. mov cx,len1
  26. repne scasb
  27. jnz skip
  28.  
  29. mov byte ptr es:[di-1],30h
  30.  
  31. skip:
  32. lea si,str2
  33. lea di,str1
  34. mov cx,len1
  35. action:
  36. mov al,byte ptr es:[di]
  37. mov byte ptr ds:[si],al
  38.  
  39. inc si
  40. inc di
  41. loop action
  42.  
  43. mov ah,09h
  44. lea dx,str2
  45. int 21h
  46.  
  47. exit:
  48. mov ah,4Ch
  49. mov al,00h
  50. int 21h
  51. code ends
  52. end start

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

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

  1. Подготовка сегментов данных и стека.
  2. Замена всех вхождений символа 'h' на ноль в строке из сегмента EXT, используя стек для временного хранения символов.
  3. Перенос измененной строки в сегмент DATA.
  4. Вывод строки на экран с помощью функции 21h.
  5. Завершение работы программы с помощью функции 4Ch.

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


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

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

9   голосов , оценка 3.889 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы