Я задавался вопросом, что такое "семантический NOPs" в блоке?
Код, который не является фактическим nop, но не влияет на поведение программы.
В языке C следующую последовательность можно рассматривать как семантическую NOP:
{
// Since none of these have side affects, they are effectively no-ops
int x = 5;
int y = x * x;
int z = y / x;
}
imap _ sort позволит одновременно сортировать и фильтровать
Но все же не позволит ограничить «20 лучших» прямо в вызове функции.
-121--3690468-B любое время итераторы не могут быть признаны недействительными.
-121--605701-Это команды, которые не имеют эффекта, как NOP, но занимают больше байт. Полезно для выравнивания кода по границе строки кэша. Команда типа lea edi, [edi + 0] является примером, для заполнения того же количества байтов потребуется 7 НОП, но вместо 7 потребуется всего 1 цикл.
Код, который выполняет, но не делает ничего значимого. Их также называют "непрозрачными предикатами" и чаще всего используют обфускаторы .
Семантический NOP - это набор инструкций машинного языка, которые не действуют на все или почти нет эффекта (большинство инструкций изменяют коды условий), единственная цель которых - запутывание того, что программа на самом деле делает.