В заданной строке с нулевым завершителем определить символы, входящие в другую строку - Assembler
Формулировка задачи:
Записывает первую строку в результирующую , как исправить?
.data str1 db "qaz123",0 str2 db "war426",0 res db ? .code start: lea esi,str1 lea edi,str2 repnz cmpsb 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 si,offset string1; строка в которой делают поиск mov cx,lenth_of_string1 mov bh,0 @@: lodsb mov bl,al or byte ptr string3[bx],1 loop @b
Объяснение кода листинга программы
- mov si,offset string1 — в этой строке кода переменная SI получает смещение (offset) строки, в которой нужно выполнить поиск.
- mov cx,lenth_of_string1 — в этой строке кода переменная CX получает длину строки, в которой нужно выполнить поиск.
- mov bh,0 — в этой строке кода переменная BH получает значение 0.
- lodsb — в этой строке кода происходит загрузка байта из строки, начиная с регистра SI, в регистр AL.
- mov bl,al — в этой строке кода значение из регистра AL копируется в регистр BL.
- or byte ptr string3[bx],1 — в этой строке кода к значению по адресу BX в строке string3 добавляется единица.
- loop @b — в этой строке кода выполняется переход к следующей итерации цикла, пока значение в регистре BH не станет равным 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д