0

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

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

将程序集作为输入时,ILDASM 生成的代码如何?生成的代码叫MSIL吗?

4

3 回答 3

2

MSIL = 微软中间语言

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

于 2013-02-10T05:17:36.173 回答
2

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

CLR 是 MSIL 运行的“机器”。

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

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

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

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

于 2013-02-10T05:18:30.230 回答
2

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

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

于 2013-02-10T05:18:38.267 回答