ASM指令似乎不是标准语法

时间:2014-09-10 00:36:37

标签: assembly

当我在一个裂缝上练习逆向工程时,我发现自己因这条指令而感到困惑

MOV DWORD PTR [6CCCDC],EDX

不应该允许它,因为intel语法是MOV dest,src 感谢那些有帮助的人;

2 个答案:

答案 0 :(得分:1)

它是有效的,并遵循您实际提到的语法MOV dest,src

简单部分EDX是源,它从该CPU寄存器中读取值。

然后[6CCCDC]是目的地。注意方括号,它们表示数字是指针而不是立即数。所以目的地是内存地址0x6CCCDC。

DWORD PTR是一个修饰符,用于指示正​​在操作的数据的大小,此处为32位。在这个特定的指令中,它是冗余的,因为dword可以通过使用32位寄存器EDX来推断。根据确切的编译器,它可以是可选的或强制的。它在即时到内存传输中很有用,因为它指定了硬编码常量的宽度。

简而言之,整个指令的意思是“取EDX寄存器的值,并将其放在从6CCCDC开始的32位存储单元中。

答案 1 :(得分:0)

为什么不允许这样做?

EDXsrcDWORD PTR [6CCCDC]为dest。因此,这会将EDX移至DWORD PTR [6CCCDC]