【问题标题】:How to read the direction bit and source or destination of an assembly instruction如何读取汇编指令的方向位和源或目标
【发布时间】:2011-10-10 17:50:35
【问题描述】:

所以我正在编写一些代码(用于 x86),我需要在其中获取指令的源点或目标点。为此,我需要指示 ModRM 或 REG 是目标还是源的方向位。我还需要能够处理即时值。到目前为止,我可以处理指令,它是主要的操作码(连同前缀)。我想知道最简单的方法是什么,或者是否有人可以指出一些确定目标/源的好代码示例(例如寄存器、内存地址或立即操作数)。我见过很多解码器,但其中大多数都是专门为一件事而构建的,而包含很多功能的解码器非常复杂。

【问题讨论】:

    标签: assembly decoding disassembly machine-instruction


    【解决方案1】:

    为什么不直接使用反汇编引擎?您可以查看它们如何解码字节(规范在英特尔开发人员手册第 1 卷中)或让它们为您完成所有繁重的工作,因此您可以改为处理它们的输出(可能是纯文本和一些标志)。要看的两个开源引擎是 BeaEngine(包括阳光下的每条指令,简单易用的界面)和 ollydbg 的 disasm 引擎(简单而紧凑,仅适用于 SSE1 指令)。

    【讨论】:

    • 啊,我忘了我在附近的某个地方有 ollydbg 源。我去看看。
    猜你喜欢
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多