【发布时间】:2012-01-29 08:51:44
【问题描述】:
我正在处理这段代码,在给定指令指针的情况下,我需要让程序执行指令。现在假设我有一种机制可以为我提供指令地址,是否可以从中获取操作码(在 IA32 指令集上)?
【问题讨论】:
-
获取处理器文档并在操作码表中查找。或者找一个开源反汇编程序。
-
@DavidHeffernan 好吧,问题是,给定指令指针,我不确定如何获取操作码,因为每个操作码的字节数可能会有所不同(如果错了,请纠正我,我不太确定)..
-
在处理器文档中都有解释。每条指令都进行了非常全面的描述,包括指令大小。到目前为止,使用现成的 disasm 代码更容易。
-
@sanz:这是一项艰巨的任务。正如您注意到 IA32 上的指令长度因指令而异。此外,还有一些带有一些新指令的 x86_64 架构,一些被删除的指令等等。你的上帝 SSE、3Dnows、FPU 指令。更好地使用现有的反汇编程序。