托管程序的编译过程如下图所示

 通过HelloWord认识MSIL

其中MSIL(Microsoft 中间语言)起到了承上启下的作用,它介于源代码(Source Code)和机器代码(Machine Code)之间,因为MS或者其他组织为我们提供了从源代码到MSIL的编译器,所以我们能将C#,VB,J#,C++,JS等等高级语言的源程序清单编译成为MSIL,而MSIL代码无法直接运行,必须根据特定的CPU指令,通过JIT(实时编译器)将MSIL代码编译成为机器代码。这样就完成了对机器代码和高级语言之间的隔离。使得各种编程语言都能在CLR下得以统一的实现。

涉及到的基础知识比较多,难以赘述,先通过最简单的程序来认识一下MSIL吧。

用C#编写下面的程序  

通过HelloWord认识MSILusing System;
通过HelloWord认识MSIL
using System.Collections.Generic;
通过HelloWord认识MSIL
using System.Text;
通过HelloWord认识MSIL
通过HelloWord认识MSIL
namespace Lesson1

 

生成该代码Lesson1.exe,在.net framework中,提供了两个工具:

  • MSIL 汇编程序 (Ilasm.exe) 该工具能将MSIL代码生成可移植可执行的(PE)文件
  • MSIL反汇编程序(Ildasm.exe) 该工具能将可执行PE反汇编成为MSIL代码

下面就与Ildasm.exe来将可执行的Lesson1.exe文件反汇编成为包含MSIL代码的Lesson1.il的。方式为,通过SDK命令提示,如下图所示执行ildasm工具

 通过HelloWord认识MSIL

就会在Lesson1.exe的同一目录产生一个包含着MSIL的Lesson1.il文件,打开该文件,文件如下:  

/Files/jillzhang/Lesson1.rar

相关文章:

  • 2021-10-26
  • 2021-06-13
  • 2022-12-23
  • 2022-01-21
  • 2021-06-05
  • 2021-07-05
  • 2021-06-04
猜你喜欢
  • 2022-03-09
  • 2021-06-06
  • 2022-12-23
  • 2021-09-11
  • 2021-09-05
  • 2022-01-19
  • 2022-12-23
相关资源
相似解决方案