Size: a a a

Ассемблер

2021 August 29

d

disba1ancer in Ассемблер
без работы со счётчиком
источник

d

disba1ancer in Ассемблер
хотя не думаю что cmp быстрее sub
источник

C

Cofeefee in Ассемблер
Ну все, если раньше я код, который осуществлял проверку защиты правил как xor eax, eax/inc eax буду inc на lea менять.
Размер увеличится правки ((
PS: не хотел mov eax, 0 - размер правки велик
источник

d

disba1ancer in Ассемблер
возможно сразу загрузить единицу будет эффективнее
источник

E

Entusiast in Ассемблер
Одинаково будет
источник

d

disba1ancer in Ассемблер
и не rep stos, а сам префикс
источник

C

Cofeefee in Ассемблер
Да я в размер упирался
источник

E

Entusiast in Ассемблер
Ну в этом и интерес - выбирать между размером или скоростью
источник

d

disba1ancer in Ассемблер
если основное ограничение размер, то жертвуй производительностью всегда
источник

E

Entusiast in Ассемблер
Хочешь заменить цикл на кучу инструкций? Тогда будет промахи в кэше
источник

E

Entusiast in Ассемблер
Да и размер увеличится, хочешь что-ли 30 итераций прописывать без цикла... А то и больше
источник

d

disba1ancer in Ассемблер
откуда будут промахи в кэше?
источник

d

disba1ancer in Ассемблер
я предлагал нечто вроде
0: stos eax
cmp edi, ecx
jnz 0b
источник

E

Entusiast in Ассемблер
Ну так писал же, что один stos медленнее, чем rep stos, если итераций более, чем 8
источник

d

disba1ancer in Ассемблер
ecx указывает на конец массива (точнее на память сразу позади него)
источник

d

disba1ancer in Ассемблер
так на большом количестве итераций rep stos выигрывает?
источник

d

disba1ancer in Ассемблер
я то сделал обратный вывод
источник

E

Entusiast in Ассемблер
да
источник

d

disba1ancer in Ассемблер
больно много регистров надо...
источник

E

Entusiast in Ассемблер
Почему много?
EAX, EDI, ECX
источник