C 获取指令指针指向的给定地址的指令

C 获取指令指针指向的给定地址的指令,c,assembly,x86,C,Assembly,X86,我正在编写这段代码,在给定指令指针的情况下,我需要让程序执行指令。假设现在我有一个机制可以为我提供指令的地址,是否可以从中(在IA32指令集上)获取操作码?如果您正在寻找硬件支持的帮助,它不是这样工作的。这需要在软件中完成。您的代码需要一个操作码和指令表,只需执行查找即可 你所描述的就是所谓的拆卸。有很多开源反汇编程序,如果你能使用其中的一个,你的任务就会变得非常简单。请看这里:如果您正在寻找硬件支持的帮助,它不是这样工作的。这需要在软件中完成。您的代码需要一个操作码和指令表,只需执行查找即可

我正在编写这段代码,在给定指令指针的情况下,我需要让程序执行指令。假设现在我有一个机制可以为我提供指令的地址,是否可以从中(在IA32指令集上)获取操作码?

如果您正在寻找硬件支持的帮助,它不是这样工作的。这需要在软件中完成。您的代码需要一个操作码和指令表,只需执行查找即可


你所描述的就是所谓的拆卸。有很多开源反汇编程序,如果你能使用其中的一个,你的任务就会变得非常简单。请看这里:

如果您正在寻找硬件支持的帮助,它不是这样工作的。这需要在软件中完成。您的代码需要一个操作码和指令表,只需执行查找即可


你所描述的就是所谓的拆卸。有很多开源反汇编程序,如果你能使用其中的一个,你的任务就会变得非常简单。请看这里:

您需要一个内存中的反汇编程序,例如或,可以向它们传递一个要读取的内存地址,只需确保该地址是可读的。如果您知道函数的长度(以字节为单位),那么最好使用这些站点上提供的运行长度汇编程序。

您需要一个内存中的反汇编程序,例如或,可以向它们传递一个要读取的内存地址,只需确保该地址是可读的。如果您知道函数的长度(以字节为单位),那么最好使用这些站点上提供的运行长度汇编程序。

获取处理器文档并在操作码表中查找。或者找一个开源反汇编程序。@DavidHeffernan好吧,问题是,给定指令指针,我不确定如何获取操作码,因为每个操作码的字节数可能会有所不同(如果我错了,请纠正我,我对此不太确定)…处理器文档中都有解释。每一条指令都有详细的描述,包括指令大小。使用现成的disasm代码要容易得多。@sanz:这是一项艰巨的任务。正如您所注意到的,IA32上的指令长度因指令而异。此外,还有x86_64体系结构,其中包含一些新指令、一些已删除的指令等。您可以使用SSEs、3Dnows、FPU指令。更好地使用现有的反汇编程序。获取处理器文档并在操作码表中查找。或者找一个开源反汇编程序。@DavidHeffernan好吧,问题是,给定指令指针,我不确定如何获取操作码,因为每个操作码的字节数可能会有所不同(如果我错了,请纠正我,我对此不太确定)…处理器文档中都有解释。每一条指令都有详细的描述,包括指令大小。使用现成的disasm代码要容易得多。@sanz:这是一项艰巨的任务。正如您所注意到的,IA32上的指令长度因指令而异。此外,还有x86_64体系结构,其中包含一些新指令、一些已删除的指令等。您可以使用SSEs、3Dnows、FPU指令。更好地使用现有的反汇编程序。