'byte ptr'(程序集)返回类型?



经验丰富的编码员,没有汇编经验,有如下问题:

在内存地址0x10000000以后的四个字节处,我有四字节值 X(例如 0x10203040),在内存地址 (X + 40) 的字节(例如 0x10203068)处,我有值"0xAB"。我想对这个字节执行操作(例如"not")。

这在汇编中是如何在语法上完成的?我已经为我得到的编译错误做了很多谷歌搜索。我目前拥有的是类似(假设 var1 = 0x10000000):

not byte ptr[dword ptr[var1] + 12]

我已经玩了两个小时,尝试各种组合,但整个事情不想用我能想出的任何黑客来编译。我也尝试使用中间变量,但我的 IDE 对"dd"关键字异常。

温柔 - 零装配经验在这里。

您不能在单个指令中执行此操作。x86 指令集仅支持某些寻址模式,您尝试使用的内存间接寻址模式不是其中之一。

您必须执行以下操作:

mov esi, [var1]
not byte ptr [esi + 12]

相关内容

  • 没有找到相关文章

最新更新