【问题标题】:ASM instruction seem not in standard syntax [duplicate]ASM 指令似乎不是标准语法 [重复]
【发布时间】:2014-11-03 12:33:54
【问题描述】:

当我在一个破解版上练习逆向工程时,我发现自己被这个指令弄糊涂了

MOV DWORD PTR [6CCCDC],EDX

不应该被允许,因为 intel 语法是 MOV dest,src 感谢那些愿意提供帮助的人;

【问题讨论】:

标签: assembly


【解决方案1】:

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

简单的部分,EDX 是源,它从那个 CPU 寄存器读取值。

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

DWORD PTR 是一个修饰符,表示正在操作的数据的大小,这里是 32 位。在这个特定指令中,它是多余的,因为可以通过使用 32 位寄存器 EDX 推断出双字。根据具体的编译器,它可能是可选的或强制的。它在立即到内存的传输中很有用,因为它指定了硬编码常量的宽度。

简而言之,整个指令的意思是“将EDX 寄存器的值放入从6CCCDC 开始的32 位内存位置。

【讨论】:

    【解决方案2】:

    为什么不允许?

    EDXsrcDWORD PTR [6CCCDC] 是目标。因此这会将EDX 移动到DWORD PTR [6CCCDC]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-27
      • 2020-09-18
      • 1970-01-01
      • 2017-01-05
      • 2015-06-20
      • 2016-06-28
      • 2020-06-23
      • 2021-08-13
      相关资源
      最近更新 更多