Поиск всех вхождений любого символа второй строки в первой (реализация strpbrk) - Assembler
Формулировка задачи:
Заданы две строки. Поиск всех вхождений любого символа второй строки в первой.
Реализовала так:
Ошибку выдает в строчке,где я пытаюсь записать в массив pos позицию непредставленного символа. Подскажите, что делать?
section '.data' data readable writeable MESSAGE db "Enter string %d",13,10,0 RESULT_1 db "RESULT is %d",13,10,0 s1 db 250 dup(0) s2 db 250 dup(0) pos db 250 dup(0) LEN dd 0 LEN2 dd 0 section '.code' code readable executable start: ccall [printf], MESSAGE, dword 1 ccall [gets], s1 ccall [printf], MESSAGE, dword 2 ccall [gets], s2 ccall [strlen],s1 mov [LEN], eax ccall [strlen], s2 mov [LEN2], eax push ds pop es cld xor bx,bx lea ebx,[s2] push ebx mov esi, ebx mov edx,[LEN] L1: lodsb mov ecx,[LEN2] lea eax,[s1] mov edi, eax repe scasb ;сканируем 1-ую строку jz equal ;такой символ есть в 1-ой строке mov eax,esi pop ebx sub eax,ebx dec eax mov byte ptr pos[ebx],ax ; ?????? inc ebx equal: dec edx jnz L1 ccall [printf], RESULT_1, ebx jmp exit exit: ccall [getchar] stdcall [ExitProcess], 0
Решение задачи: «Поиск всех вхождений любого символа второй строки в первой (реализация strpbrk)»
textual
Листинг программы
char * pos; .................. if (!pos) cout<<*pos
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д