В заданной строке с нулевым завершителем определить символы, не входящие в другую строку - 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
Объяснение кода листинга программы
- Переменная
cx
содержит счётчик количества итераций, равное 6. - Используется инструкция
repnz scasb
, которая выполняет сравнение и замену символов. - Если текущий символ в строке не равен следующему символу (не является завершающим нулём), то он заменяется на символ, который находится в регистре
al
. - Инструкция
repnz
выполняет повторяющуюся замену до тех пор, пока не будет найден завершающий ноль. - Результат не сохраняется в переменной
cx
, поэтому предполагается, что результат не используется в данном коде.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д