从intel x86语法汇编中识别操作数类型

时间:2013-11-27 22:40:18

标签: parsing assembly x86

我正在研究解析x86 intel语法汇编代码并生成抽象表示的方法。具体来说,我试图理解如何将操作数分类为这些已知的x86操作数类型之一:寄存器,内存,常量/立即操作数,标签(如http://ozark.hendrix.edu/~burch/csbsju/cs/350/handouts/x86.html中所述)

例如,

转换原始程序集

的此片段
push    ebp
mov ebp, esp
push    -1
push    __ehhandler$_main
mov eax, DWORD PTR fs:0

进入操作数抽象程序集

的片段
push    register
mov register, register
push    constant
push    constant
mov register, memory

非常感谢任何有关此任务复杂性的指导,或指向具有相关功能的工具的指南。

1 个答案:

答案 0 :(得分:3)

如果你可以组装代码,只需反汇编它...操作码将告诉你指令处理的操作数类型。 托米斯拉夫