哪个代码是MSIL?代码是由ILDASM MSIL生成的吗?

时间:2013-02-10 05:12:03

标签: c# compiler-construction .net-assembly

我仍然对哪个代码称为MSIL感到困惑。

在其他编译器中,C#生成一个程序集。 ILASM还生产一个装配体。 那些程序集包含MSIL?

ILDASM在将程序集作为输入时生成的代码怎么样? 生成的代码是否称为MSIL?

3 个答案:

答案 0 :(得分:2)

MSIL = Microsoft中间语言

MSIL是所有.NET编译器的输出。它可以表示为MSIL汇编代码或二进制形式 - 后者是您在编译的程序集中找到的。

答案 1 :(得分:2)

MSIL是C#编译代码的“机器代码”语言 成。

CLR是MSIL运行的“机器”。

当运行MSIL时,CLR会将您的代码转换为真正的机器代码 使用JIT。

真实的机器代码在您的计算机实际CPU上运行。

MSIL Assembler(Ilasm.exe)从Microsoft中间语言(MSIL)生成可移植可执行(PE)文件。 ILDASM是相反的反汇编程序。

PE格式用于EXE,DLL,SYS(设备驱动程序)和其他文件类型。

答案 2 :(得分:2)

C#编译器生成一个程序集。程序集包含元数据和MSIL。 VB.NET(现在简称为VB)生成相同的东西。 C / C ++编译器也可以创建MSIL。 IL Assembler(ILASM)可以获取IL并生成程序集。

ILDASM是一个反汇编程序。您可以找到记录IL(MSIL)here的详细信息。