Объединение двух символьных строк - Assembler

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

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

Написать программу объединения двух символьных строк с использованием команды MOVSB. Необходимо учесть, что результирующая строка должна иметь размер, как минимум равный сумме размеров сцепляемых строк.

Решение задачи: «Объединение двух символьных строк»

textual
Листинг программы
mov edi, offset dest_str ; исходная она же конечная строка
add edi,dest_str_len ; её длина
mov esi,offset sourc_str ; строка для копирования
mov ecx,sourc_str_len ; ее длина
rep movsb ; копирование

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

  1. mov edi, offset dest_str - в данном коде это означает, что содержимое регистра edi будет установлено в значение, которое находится по смещению (offset) в памяти, где хранится переменная dest_str. В результате, в edi будет храниться начальный адрес (смещение) строки dest_str.
  2. add edi, dest_str_len - этот код увеличивает значение в edi на значение переменной dest_str_len. Это означает, что в edi теперь хранится начальный адрес (смещение) строки dest_str, увеличенный на её длину.
  3. mov esi, offset sourc_str - здесь содержимое регистра esi устанавливается в значение, которое находится по смещению (offset) в памяти, где хранится переменная sourc_str. В результате, в esi будет храниться начальный адрес (смещение) строки sourc_str.
  4. mov ecx, sourc_str_len - этот код устанавливает значение переменной ecx равным значению переменной sourc_str_len. Это означает, что в ecx теперь хранится длина строки sourc_str.
  5. rep movsb - это команда, которая повторяет копирование байтов из памяти, пока ecx больше или равно нулю. В данном случае, это команда копирования строки sourc_str в строку dest_str. Поскольку ecx содержит длину строки sourc_str, это будет копирование всей строки.

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


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

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

13   голосов , оценка 4.077 из 5