Я ищу подстроку из пользовательского ввода и не могу сравнить и найти ее.у меня возникают проблемы при сравнении строки и подстроки в моем цикле.
строка:
"Рыцарь Райдер - призрачный полет" "в опасный мир" "человека, которыйне существует. Mich "" ael Knight, молодой одиночка в "" крестовом походе, чтобы отстаивать интересы "," невинных, безобидных "," беспомощных в мире "" преступников, которые действуют за пределами "" eзакон. Рыцарь Райдер, Храни "" храбрость в ночи. "
код, который у меня есть.
found: ; If string was found print location
;; Following is a snippet of code for
;; printing out the digits of a number if its more
;; than one digit long
sub rsi, rdx
mov r10, 1 ; Keeps track of the number of digits to be printed
mov rdi, loc ; Store the address of location buffer
mov cl, 10 ; Print out its digits using a loop
cmp ax, 9 ; Is the number larger than a single digit?
jg digits ; if so, jump to store the digits routine
mov rbx, rax ; Copy the value into rbx (Used later by a shifting
; out routine)
add bl, '0' ; Add the ASCII character offset for numbers
jmp shOut ; Shift out routine
мой цикл для поиска подстроки находится ниже
loop: ;loop until all substring is found
add al, [rdi+0]
jz nope
cmp rax, rdx
je decc3
shl rax,8
add al, [rdi+1]
jz nope
cmp rax, rdx
je decc3
shl rax,8
add al, [rdi+2]
jz nope
cmp rax, rdx
je decc3
shl rax, 8
add al, [rdi+3]
jz nope
cmp rax, rdx
je found
shl rax, 8
lea rdi, [rdi+4]
jmp loop
decc3: dec rdi