MASM汇编语言和ILASM有什么关系(如果有的话)?有一对一的转换吗?我正在尝试将Quantum GIS合并到一个程序中,我正在写一篇文章!我的电脑上有地理信息系统,我有RedGate反射器,它和Visual Studio2008的对象浏览器都无法打开量子.dlls的其中一个(其中几个我对它们的行为没有很强的线索)。我使用了MASM汇编编辑器,并“打开”了相同的dll,它显示了一些我从一开始就没有必要理解的东西。我如何才能将相同“代码”转换成我可以在ILASM和Csharp中进行交互的东西呢?非常感谢你的阅读,所有对早期questions...please的回应请记住,我是Csharp编程的新手,甚至对MASM和ILASM更新鲜。
发布于 2010-12-19 08:28:12
MASM处理x86指令,并且依赖于平台/处理器,而ILASM指的是与平台/处理器无关的.Net CIL (公共中间语言)指令。从特定的东西切换到更通用的东西是很难实现的,这就是为什么,AFAIK,没有从MASM到ILASM的转换器(相反,有!)
发布于 2010-12-19 08:46:29
IL是一个独立于平台的本机代码抽象层。在.NET平台上用C#、VB.NET或其他.NET语言编写的代码都会编译为包含IL的程序集.EXE/.DLL。通常,在第一次执行IL代码时,.NET运行时将通过NGen运行它,它会再次将其编译为本机代码,并将输出存储在实际执行它的临时位置。这允许将.NET平台代码部署到支持该.NET框架的任何平台上,而不管系统的处理器或体系结构如何。
正如您所看到的,Reflector非常适合于查看程序集中的代码,因为可以很容易地以C#或VB.NET形式预览IL。这是因为IL通常是一些较高级别的指令,并且还包含许多本机代码通常不会有的元数据,如类、方法和变量名。
还可以通过设置Visual Studio项目平台或直接在程序集上调用Ngen.exe,将.NET项目直接编译为本机代码。一旦完成,就很难理解本机代码了。
发布于 2010-12-19 08:26:40
MASM汇编语言与ILASM没有任何关系。我看你没有任何方法可以把本地代码转换成IL代码。只有CLR才能理解IL,而MASM汇编语言是关于本机代码的。CLR在运行时将IL转换为本机代码
https://stackoverflow.com/questions/4480935
复制相似问题