Ответ 1
Руководство разработчика программного обеспечения Intel Architecture Software, том 2B (инструкции NZ) содержит следующую таблицу (стр. 4-12) о NOP
:
Таблица 4-9. Рекомендуемая многобайтовая последовательность инструкции NOP
Length Assembly Byte Sequence ================================================================================= 2 bytes 66 NOP 66 90H 3 bytes NOP DWORD ptr [EAX] 0F 1F 00H 4 bytes NOP DWORD ptr [EAX + 00H] 0F 1F 40 00H 5 bytes NOP DWORD ptr [EAX + EAX*1 + 00H] 0F 1F 44 00 00H 6 bytes 66 NOP DWORD ptr [EAX + EAX*1 + 00H] 66 0F 1F 44 00 00H 7 bytes NOP DWORD ptr [EAX + 00000000H] 0F 1F 80 00 00 00 00H 8 bytes NOP DWORD ptr [EAX + EAX*1 + 00000000H] 0F 1F 84 00 00 00 00 00H 9 bytes 66 NOP DWORD ptr [EAX + EAX*1 + 00000000H] 66 0F 1F 84 00 00 00 00 00H
Это позволяет создавать "padding NOP
" определенных размеров. С двумя из них вы можете объединить 16 байтов, хотя я рекомендую проверить направляющие оптимизации (для целевого сервера CPU), является ли JMP
быстрее, чем два таких NOPs
.