我目前正在分析二进制文件,并遇到以下三个指令:
movzx ecx, byte [rax+r9]
movzx edx, byte [rbx+r9]
lea ecx, [rcx+rdx]
这些说明中每条的含义对我来说都很清楚,但是将第一个和第三个说明结合使用没有任何意义。第一个movzx将[rax + r9]处的值复制到ecx中,然后lea指令再次覆盖ecx?为什么我们需要这里的第一个movzx?
我想我只是缺少了一些东西,这是一个令人讨厌的编译器技巧,因此,我感谢任何帮助。