【问题标题】:Meaning of "EC" in x86 disassembly [duplicate]x86反汇编中“EC”的含义[重复]
【发布时间】:2015-05-03 10:18:20
【问题描述】:

我正在尝试反汇编十六进制“8B EC”。反汇编给我mov ebp, esp

  • "8B" - MOV 指令;
  • “EC”-???;

反汇编程序如何知道“EC”是ebp, esp

【问题讨论】:

  • 这就是所谓的“ModR/M”字节。它记录在 Intel's Architecture Manual 的第 2A 卷中。看看this question 是否有帮助。
  • 反汇编程序知道的方式与执行它的 CPU 知道的方式完全相同 - 该字节包含两个 3 位寄存器代码和一个 2 位寻址模式,以架构定义的某种方式封装在其中.

标签: x86 intel-syntax


【解决方案1】:

EC 不是专门的ebp, esp,它可能意味着不同的东西,具体取决于它前面的操作码。

这可能意味着

  • /5 esp(例如,83 EC 10 sub esp, 16
  • esp, ebp(例如,89 EC mov esp, ebp
  • ebp, esp(例如,8B EC mov ebp, esp
  • ah, ch(例如,00 EC add ah, ch
  • ch, ah(例如,02 EC add ch, ah
  • mm5, mm4(例如0F FC EC paddb mm5, mm4
  • xmm5, xmm4(例如66 0F FC EC paddb xmm5, xmm4
  • sp, gs(例如8C EC mov sp, gs
  • gs, sp(例如8E EC mov gs, sp
  • st, st(4)(例如DB EC fucomi st, st(4)
  • st(4), st(例如DC EC fsub st(4), st

实际上还有更多。因此,我建议不要单独为 ModRM 分配过多的含义,它所使用的操作码(和前缀)非常重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 2013-08-04
    • 2012-10-02
    • 1970-01-01
    相关资源
    最近更新 更多