В заданной строке с нулевым завершителем вставить заданную подстроку, начиная с заданной позиции - Assembler

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

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

Вот мое задание:

В заданной строке с нулевым завершителем вставить заданную подстроку, начиная с заданной позиции.

Прошу вас помочь мне. Я понимаю что это скорее всего элементарщина,но мне нужна помощь.

P.S

Желательно алгоритм и код!

Решение задачи: «В заданной строке с нулевым завершителем вставить заданную подстроку, начиная с заданной позиции»

textual
Листинг программы
   text_line_1  db  'Welcome to hell!', 0   ; строка, в которую надо вставить строку.
   text_line_2  db  'Cyberforum.ru ', 0     ; строка, которую надо вставить.
   text_line_3  db  31 dup (0)              ; буфер, для готовой строки.
   position = 10                            ; позиция, с которой надо вставить строку.

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

  1. Объявляются три строки: text_line_1 db 'Welcome to hell!', 0 text_line_2 db 'Cyberforum.ru ', 0 text_line_3 db 31 dup (0)
  2. Первая строка (text_line_1) содержит исходную строку, в которую необходимо вставить подстроку.
  3. Вторая строка (text_line_2) содержит подстроку, которую необходимо вставить.
  4. Третья строка (text_line_3) является буфером для результата. Изначально она заполнена нулевыми символами.
  5. Объявляется переменная position, которая задает позицию, с которой необходимо начать вставку подстроки.
  6. Код для вставки подстроки в исходную строку: mov dx, position mov cx, len(text_line_2) mov bx, len(text_line_1) copy_loop: mov al, [text_line_1 + bx] cmp al, 0 jne not_end_of_string mov [text_line_3 + dx], al jmp copy_loop not_end_of_string: mov [text_line_3 + dx], 0 jmp finish_string finish_string: mov bx, len(text_line_2) mov cx, len(text_line_1) sub bx, cx jle not_enough_space mov [text_line_3 + dx - bx], [text_line_2 + bx] jmp done not_enough_space: mov [text_line_3 + dx - bx], 0 jmp done done: ; результат в text_line_3
  7. Результатом работы программы является строка, полученная после вставки подстроки в исходную строку, которая сохранена в переменной text_line_3.

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


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

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

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