nop dword ptr [eax + 00h]
nop dword ptr [eax + 00000000h]
db
(“定义字节”)作为简单的无忧替代方案,这是,嗯,保证可以工作的。db 90 90 90...
来填充不是完全可以吗?实际上,这样做还可以防止出现错误的jmp
跳转。 - Glenn Slayden0xcc
(int3
) 填充。如果您知道某个地方不应该执行,那么陷阱比默默地跳过进入下一个函数更有意义。 - Peter Cordes如评论所指出的那样,这是一个多字节NOP,通常用于将后续指令对齐到16字节边界,特别是当该指令是循环中的第一条指令时。
这种对齐可以帮助提高指令获取带宽,因为指令获取通常以16个字节为单位进行,因此将循环顶部对齐可以最大程度地减少解码过程中的瓶颈。
这种对齐的重要性可能不如以前那么重要,因为引入了循环缓冲区和微操作缓存,它们对对齐的敏感度较低。在某些情况下,这种优化甚至可能导致性能下降,特别是当循环执行次数非常少时。