Size: a a a

Ассемблер

2021 May 26

d

disba1ancer in Ассемблер
можно в 4 инструкции, что возможно будет меньше по размеру бинарника, но это не точно:
mov eax, 15
add rsi, rax
neg rax
and rsi, rax
источник

ST

Saenro T in Ассемблер
5+3*3=14
Выше 4+7=11
Или нет...
источник

d

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

d

disba1ancer in Ассемблер
neg eax тоже 3 байта?
источник

d

disba1ancer in Ассемблер
Хотя да, там же ещё префикс на 64ёх битные операнды
источник

d

disba1ancer in Ассемблер
И откуда взялись 4 и 7? Там одни константы на 8 байт
источник

ST

Saenro T in Ассемблер
Если число меньше 255 (ну или знаковое -128 +127), идёт одним байтом
источник

ST

Saenro T in Ассемблер
push 0-255 — вообще два байта, хоть и 64 бита
источник

d

disba1ancer in Ассемблер
Не знал про такую фичу
источник

ST

Saenro T in Ассемблер
Т.е.
push 15
pop rax
На 4 байта короче нежели
mov rax, 15
источник

d

disba1ancer in Ассемблер
кароче, основной метод расчёта выровненного указателя, те две инструкции
источник

d

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

ST

Saenro T in Ассемблер
Интересно, существует ли утверждение, что троян, заложенный производителем в CPU обычное дело?
источник

АВ

А зачем Вам in Ассемблер
в рядах импортозамещателей да
источник

MA

Max Azatian in Ассемблер
Команда BSF сканирует биты второго операнда (слово или двойное слово), начиная с бита 0. Если все биты равны нулю, то устанавливается флаг ZF, в противном случае, флаг ZF сбрасывается, и в регистр назначения (первый операнд) помещается номер первого установленного бита.

т.е. если не все биты равны 0, то BSF кидает в первый операнд индекс первого нуля, так?
источник

MA

Max Azatian in Ассемблер
или первого ((не)) нуля?
источник

ST

Saenro T in Ассемблер
Ничего не кинет, пока ничего не встретит
источник

MA

Max Azatian in Ассемблер
т.е. что-то кинет только тогда, когда встретит?
источник

ST

Saenro T in Ассемблер
Ага
источник

MA

Max Azatian in Ассемблер
а есть команда, которая возвращает индекс первого нуля в регистре?
источник