我想在c#中编写一串汇编代码并将其发送到某个win32 api来编译并执行它并获得结果。
示例:
string str = "MOV 1,2;XOR EBP,EBP"...
听起来很难,但任何建议都会有所帮助。
答案 0 :(得分:5)
我怀疑有一个win API来编译和放大执行汇编。 你可以做的最好的事情就是写一个文件,执行MASM(或者这些天所谓的),链接它然后执行生成的程序。 我无法想象你想要做什么,但这几乎是我试图解决几乎所有问题的最后一种方式!
如果你想比较原生和&托管代码,只需编写两个或多或少相同的程序。没有理由从.NET生成程序集。您可以使用任何合适的工具。 MASM,调试等。
答案 1 :(得分:1)
AFAIK没有汇编编译器可用作WinAPI的一部分。您将不得不使用某些第三方编译器(并且您的程序需要重新分发它)。
但是,您可以使用ilasm
这是.NET框架的一部分。 (请注意,它不是Intel32编译器,其源代码为CIL代码,因此像xor ebp, ebp
这样的指令不起作用。)