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

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

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

Есть вот такой код. Нужно его изменить так, чтобы программа определила символы первой строки которых нет в другой строке и записала их в результирующую строку.
.data 
    
str1 db "gfr352",0
str2 db "ghr642",0
res db ?
 
.code
start:
lea esi,str1
lea edi,str2

repnz scas
jne equals

equals: 
    mov ecx,6
    lea esi,str1
    lea edi,res
    L1:
    mov al,[esi]
    mov [edi],al
    inc edi
    inc esi
 
    LOOP L1

end start

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

textual
Листинг программы
mov cx, 6
repnz scasb

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

  1. Переменная cx содержит счётчик количества итераций, равное 6.
  2. Используется инструкция repnz scasb, которая выполняет сравнение и замену символов.
  3. Если текущий символ в строке не равен следующему символу (не является завершающим нулём), то он заменяется на символ, который находится в регистре al.
  4. Инструкция repnz выполняет повторяющуюся замену до тех пор, пока не будет найден завершающий ноль.
  5. Результат не сохраняется в переменной cx, поэтому предполагается, что результат не используется в данном коде.

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


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

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

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