【问题标题】:Do offsets in assembly represent addresses or bits?汇编中的偏移量代表地址还是位?
【发布时间】:2021-04-15 20:43:01
【问题描述】:

我有点困惑,inc [esi + 8](假设 [esi] 指向 8 位内存中的 0x0000001F)会增加 0x00000027 还是会影响 0x00000020?我看过一段视频,暗示它会影响后者,而 ram 中的常规指针按地址而不是位。

【问题讨论】:

  • 您看到的视频是错误的,或者您误解了它。 (例如,可能是在谈论像 8051 这样的微控制器,其中部分地址空间是常规物理内存的位可寻址视图 (what-when-how.com/8051-microcontroller/…),但它没有称为 ESI 的寄存器。)
  • X86是字节机,所以每个地址代表一个字节。

标签: assembly x86 memory-address addressing-mode


【解决方案1】:

地址是字节。这将增加0x00000027

这不会组装,因为您缺少尺寸。 inc {byte|word|dword|qword} ptr [esi + 8] 是你想要的。 (需要操作数大小)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    相关资源
    最近更新 更多