【问题标题】:Ollydbg : sign extending with MovsxOllydbg : 用 Movsx 扩展符号
【发布时间】:2015-11-17 19:12:53
【问题描述】:

Movsx1 对寄存器进行符号扩展,对吗?

那么为什么在 Ollydbg 我得到了这个:

  • 之前:
  • 之后:

我应该在ECX 中使用FFFFFF65 而不是00000065 不?

谢谢!

【问题讨论】:

  • 它扩展了符号位,这是最重要的位。负数只有 1。
  • src 内存操作数byte ptr ds:[429d5d] 告诉汇编器您打算从ds:[429d5d] 加载一个字节。由于MOVSX 符号扩展了 src 操作数,它将查看字节的那个高位并通过高位复制它(符号扩展它)。 0x65 MSB(最高有效位)为 0,因此它是符号扩展 0。值 0x80 到 0xFF 将被符号扩展为 1 到高位,因为该范围内的 MSB 为 1。如果你一直在处理 WORD PTR 那么符号扩展将基于 16 位字的 MSB

标签: assembly x86 ollydbg sign-extension


【解决方案1】:

内存位置的字节值为 65h。这是一个正数,因此扩展将用零填充 ECX 的 3 个最高字节,给出 00000065h

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 2012-01-15
    • 2019-09-12
    • 2017-11-24
    • 2013-10-16
    相关资源
    最近更新 更多