我理解反编译程序和反汇编程序(.net反汇编程序/反编译器)之间的区别,即反汇编程序允许您将机器代码转换为汇编语言(在Visual的反汇编窗口中可以看到),反编译器将汇编语言转换为高级语言,例如C#。
是否可以在文本文件中看到由Jitter生成的程序集代码(从反汇编窗口)?我怀疑这并不是因为它是为了准时而优化的。
此外,在我的第一个问题的上下文中,MSIL是汇编语言还是高级语言?也就是说,在.NET中,似乎有两种汇编语言,即MSIL和由抖动生成的汇编语言,尽管我怀疑答案是JITTER生成机器代码,它在Dissassembly中被格式化为汇编语言。
我花了很多时间在这里阅读其他的问题,但我没有找到答案。
发布于 2013-08-31 12:39:09
我认为在这里理解定义是很重要的(看起来你大部分时间都这么做,这只是为了确保)。
首先,汇编语言:这是任何人类可读的语言,其中每条语句直接编译成某种机器代码中的指令(例如,x86机器代码或.Net字节码)。
基于此,反汇编程序是一个逆转编译的程序:它将机器代码转换为相应的汇编语言。
反编译器将机器代码转换为另一种语言。
也许所有选项(包括de-/编译C/C++和假设x86计算机)的映像都会有帮助:

现在,针对你的具体问题:
是否可以在文本文件中看到由Jitter生成的程序集代码(从反汇编窗口)?
从理论上讲,这是不可能的(尤其是考虑到NGEN)。实际上,我不知道任何这样的工具。
在我的第一个问题的上下文中,MSIL是汇编语言还是高级语言?
我想说这是一种高级汇编语言。这当然是一种汇编语言,也是比普通汇编语言更高级的语言。
发布于 2013-08-31 11:18:03
IL/MSIL是一种针对.NET虚拟机的汇编语言:-)反汇编窗口显示程序跳转后的汇编语言,因此"real“CPU的汇编语言(通常是Intel)。
通过使用恩根,您可以编译您的.NET应用程序为“本机”机器代码。从那里,您可能可以使用“标准”反汇编程序来观察它的内部。
https://stackoverflow.com/questions/18547417
复制相似问题