Блок: что такое семантический NOPs?

Я задавался вопросом, что такое "семантический NOPs" в блоке?

8
задан starblue 5 February 2010 в 20:03
поделиться

4 ответа

Код, который не является фактическим 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;
}
5
ответ дан 5 December 2019 в 22:18
поделиться

imap _ sort позволит одновременно сортировать и фильтровать

Но все же не позволит ограничить «20 лучших» прямо в вызове функции.

-121--3690468-

B любое время итераторы не могут быть признаны недействительными.

-121--605701-

Это команды, которые не имеют эффекта, как NOP, но занимают больше байт. Полезно для выравнивания кода по границе строки кэша. Команда типа lea edi, [edi + 0] является примером, для заполнения того же количества байтов потребуется 7 НОП, но вместо 7 потребуется всего 1 цикл.

1
ответ дан 5 December 2019 в 22:18
поделиться

Код, который выполняет, но не делает ничего значимого. Их также называют "непрозрачными предикатами" и чаще всего используют обфускаторы .

0
ответ дан 5 December 2019 в 22:18
поделиться

Семантический NOP - это набор инструкций машинного языка, которые не действуют на все или почти нет эффекта (большинство инструкций изменяют коды условий), единственная цель которых - запутывание того, что программа на самом деле делает.

0
ответ дан 5 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: