cur, end
jz 1f
Остановка флагов, и таких моментов куча. Почему ты не используешь LEA? Тебе же флаги не нужны
а прямо всегда использовать lea когда флаги не нужны?
я не настолько шарюв ассемблере, чтобы помнить все эти нюансы
А разве inc/dec не проще использовать? Что быстрее inc eax add eax, 1 lea eax,[eax+1] Вроде бы раньше кто-то тестировал?
add точно быстрее чем inc
inc имеет баг с флагами - сохраняет одни, изменяет другие add - не имеет бага, но работает с флагами, если они не нужны, но при этом две инструкции будут изменять одни флаги - будет "flag stall" остановка флагов, вызовет задержку в 5-6 тактов lea - не имеет бага, не работает с флагами, не вызовет flag stall
lea, возможно, такая же быстрая как и add
она не может иметь бага...
lea, она вообще не трогает флаги, о каких багах может идти речь?
Ну я об этом и написал
Ну все, если раньше я код, который осуществлял проверку защиты правил как xor eax, eax/inc eax буду inc на lea менять. Размер увеличится правки (( PS: не хотел mov eax, 0 - размер правки велик
возможно сразу загрузить единицу будет эффективнее
Да я в размер упирался
Ну в этом и интерес - выбирать между размером или скоростью
если основное ограничение размер, то жертвуй производительностью всегда
Обсуждают сегодня