组装似乎有很多技巧。
- 将寄存器设置为零(
xor reg, reg
) - 仅将堆栈扩展四个字节(
push/pop ecx
) - 将寄存器设置为 -1 (
OR reg -1
) - 用位移位乘以 2 的幂,或用 LEA乘以n**2+1
是否有任何此类大会特质的列表/书籍/资源?
组装似乎有很多技巧。
xor reg, reg
)push/pop ecx
)OR reg -1
)是否有任何此类大会特质的列表/书籍/资源?
没有关于您所谓的“技巧”的手册(就个人而言,我更喜欢术语“习语”)。您引用的大多数习语都被编译器用来以比您在手册中看到的更有效的方式执行精确的任务。
了解它的最好方法是阅读编译器生成的汇编代码和/或 shellcode。它们是汇编习语的重要来源。
以下是研究所有这些习语的好读物或链接列表:
Intel、AMD 和 VIA CPU 的微体系结构丹麦技术大学 Agner Fog为汇编程序员和编译器制造商编写的优化指南
不适合胆小的人,但可能是关于该主题的最详细的文档。