R
global _ft_strcmp
;int strcmp(const char *s1, const char *s2);
_ft_strcmp:
rep cmpsb ; сравниваю rdi и rsi
jne ret_ne ; если последние сравненные символы не равны - jmp
xor rax, rax ; если равны - обнуляю rax, чтобы вернуть 0
ret
ret_ne:
jbe lower
ja higher
lower:
mov rax, -1
ret
higher:
mov rax, 1
ret
Ребят, подскажите пожалуйста в чем загвоздка.
После выполнения rep cmpsb исполнение всегда уходит в jne. Даже в случае если строки были равные - не проскакивает.
Понимаю что очень наивный код, но сижу и ломаю голову почему он не работает. Есть мысль что стоп кондишн у rep такой, что исполняя эту инструкцию вообще невозможно узнать что строки были равны... Туплю

