Assembly x86 movzx指令——要求澄清
我今天遇到了两条指令,它们以我不熟悉的形式出现:Assembly x86 movzx指令——要求澄清,assembly,x86,Assembly,X86,我今天遇到了两条指令,它们以我不熟悉的形式出现: movzx eax,byte ptr MODULE!My_Function+0xcd4 (00692e84)[eax] jmp dword ptr Module!My_Function+0xc7c (00692e2c)[eax*4] 我知道它想在eax中移动一个字节并进行零扩展,但这些指令末尾的方括号是什么?这是反汇编程序的输出吗?你能给我看一下这些函数的机器码吗?这些只是你常用的有效地址语法。唯一复杂的是您友好的反汇编程序插入符号
movzx eax,byte ptr MODULE!My_Function+0xcd4 (00692e84)[eax]
jmp dword ptr Module!My_Function+0xc7c (00692e2c)[eax*4]
我知道它想在eax中移动一个字节并进行零扩展,但这些指令末尾的方括号是什么?这是反汇编程序的输出吗?你能给我看一下这些函数的机器码吗?这些只是你常用的有效地址语法。唯一复杂的是您友好的反汇编程序插入符号和值。实际代码读取
movzx-eax,字节ptr[00692e84+eax]
。反汇编程序认为您可能想知道00692e84
靠近符号模块!我的函数
,偏移量为0xcd4
@Jester我猜它一定是一个有效地址,但我想确定一下。在我看来,这仍然没有意义dds 00692e84+eax l1
似乎包含另一个函数的地址。我不确定那是什么意思。(我忘了提到我正在使用Windbg来探索这一点。)我们无法从这么多的信息中确切地说出这意味着什么。加载到eax
中的值是跳转表的索引,不应该是地址。@Jester你说得对。这是我在这一点上的问题,但谢谢你确认我原来的问题!