我仍然对哪个代码称为MSIL感到困惑。
在其他编译器中,C#生成一个程序集。 ILASM还生产一个装配体。 那些程序集包含MSIL?
ILDASM在将程序集作为输入时生成的代码怎么样? 生成的代码是否称为MSIL?
答案 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的详细信息。