zoukankan      html  css  js  c++  java
  • 通过HelloWord认识MSIL

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

     

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

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

    用C#编写下面的程序  

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace Lesson1
    {
        
    class Program
        
    {
            
    static void Main(string[] args)
            
    {
                Console.WriteLine(
    "Hello World!");
                Console.Read();
            }

        }

    }

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

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

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

     

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

    /Files/jillzhang/Lesson1.rar

  • 相关阅读:
    css
    page
    Process Array
    multiprocessing
    page
    mid
    防御 CSRF
    django 常用过滤器
    template
    Android学习笔记28-对话框Dialog控件的使用
  • 原文地址:https://www.cnblogs.com/jillzhang/p/994738.html
Copyright © 2011-2022 走看看