我正在研究解析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
非常感谢任何有关此任务复杂性的指导,或指向具有相关功能的工具的指南。
答案 0 :(得分:3)
如果你可以组装代码,只需反汇编它...操作码将告诉你指令处理的操作数类型。 托米斯拉夫