- 浏览: 255719 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (293)
- web (1)
- [随笔分类]项目管理 (30)
- [随笔分类]WCF (14)
- 未分类 (1)
- [随笔分类]Linq (4)
- [随笔分类]C#基础 (24)
- 项目 (1)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (8)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (9)
- [随笔分类]Ubuntu (4)
- ASP.Net (1)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (30)
- [随笔分类]ASP.NET MVC (20)
- [随笔分类]ASP.NET (3)
- [随笔分类]程序员厨房 (4)
- [随笔分类]英语学习 (28)
- [网站分类]4.其他技术区 (1)
- [随笔分类]Silverlight (12)
- [随笔分类]CodeSmith (8)
- [随笔分类]其他 (4)
- [随笔分类]Ruby (4)
- [发布至博客园首页] (34)
- [网站分类]其他技术区 (3)
- [随笔分类]Ruby on Rails (2)
- [网站分类].NET新手区 (33)
- [随笔分类]TDD (1)
- [随笔分类]不谈技术 (2)
- [网站分类]非技术区 (7)
最新评论
-
yicone:
You make a mistake when paste t ...
WCF步步为营(一):简单示例 -
jinweijie:
你好,这个实现不错,但是在用了scriptmanager以后就 ...
在服务器端保存ViewState
Microsoft Intermediate Language (MSIL)微软中间语言
MSIL是将.NET代码转化为机器语言的一个中间过程。它是一种介于高级语言和基于Intel的汇编语言的伪汇编语言。当用户编译一个.NET程序时,编译器将源代码翻译成一组可以有效地转换为本机代码且独立于CPU的指令。当执行这些指令时,实时(JIT)编译器将它们转化为CPU特定的代码。由于公共语言运行库支持多种实时编译器,因此同一段msil代码可以被不同的编译器实时编译并运行在不同的结构上。从理论上来说,MSIL将消除多年以来业界中不同语言之间的纷争。在.NET的世界中可能出现下面的情况一部分代码可以用EFFIL实现,另一部分代码使用C#或VB.NET完成的,但是最后这些代码都将被转换为中间语言。
编译为托管代码时,编译器将源代码翻译为 Microsoft 中间语言 (MSIL),这是一组可以有效地转换为本机代码且独立于 CPU 的指令。MSIL 包括用于加载、存储和初始化对象以及对对象调用方法的指令,还包括用于算术和逻辑运算、控制流、直接内存访问、异常处理和其他操作的指令。要使代码可运行,必须先将 MSIL 转换为特定于 CPU 的代码,这通常是通过实时 (JIT) 编译器来完成的。由于公共语言运行库为它支持的每种计算机结构都提供了一种或多种 JIT 编译器,因此同一组 MSIL 可以在所支持的任何结构上 JIT 编译和运行。
当编译器产生 MSIL 时,它也产生元数据。元数据描述代码中的类型,包括每种类型的定义、每种类型的成员的签名、代码引用的成员和运行库在执行时使用的其他数据。MSIL 和元数据包含在一个可移植可执行 (PE) 文件中,此文件基于并扩展过去用于可执行内容的已公布的 Microsoft PE 和公共对象文件格式 (COFF)。这种文件格式包含 MSIL 或本机代码以及元数据,使得操作系统能够识别公共语言运行库映像。文件中的元数据以及 MSIL 的存在使代码能够描述自身,这意味着不再需要类型库或接口定义语言 (IDL)。运行库在执行过程中根据需要从该文件中查找并提取元数据。
发表评论
-
C#拾遗系列(1):委托
2008-06-11 14:43 587一、委托概述 委托具有以下特点: 委托类似于 ... -
C#拾遗系列(2):属性
2008-06-11 14:54 7111. 这里主要演示属性的继承和覆盖 2. 把属性理解为方法 ... -
C#拾遗系列(3):构造函数
2008-06-11 15:19 6161. 主要演示构造函数的继承 声明空 ... -
C#拾遗系列(4):索引器
2008-06-11 15:30 7681. 概述 索引器允许类或结构的实例就像数组一样进行索引。索引 ... -
C#拾遗系列(5):泛型委托
2008-06-14 17:25 586using System; using System.Col ... -
C#拾遗系列(6):迭代器
2008-06-14 23:03 5191. 示例: using System; using Sys ... -
C#拾遗系列(7):自定义属性
2008-06-18 14:52 6411 .描述 属性提供功能强大的方法以将声明信息与 C# 代码( ... -
C#拾遗系列(8):异常
2008-06-19 11:02 595using System; using System.Col ... -
C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型
2008-06-19 15:07 1145本文内容: 继承 Equal示例 结构和类 ... -
MSIL(1): Hello World
2009-03-09 22:14 7631. 用记事本编写如下代码 .assembly HelloWo ... -
代码段:ASCII to Unicode
2009-04-17 10:44 7761: private string Co ... -
Get countries from system
2009-05-08 16:02 7951: using System; 2: usi ... -
[Tips]:Read value from Resource file in C#
2009-05-18 16:18 10291: //Namespace refer ... -
[tips]: 多线程 ManualResetEvent
2009-05-21 14:23 1339WaitHandle用于实现对共享资源的独占访问,AutoRe ... -
C#拾遗系列(1):委托
2008-06-11 14:43 668一、委托概述 委托具有以下特点: 委托 ... -
C#拾遗系列(2):属性
2008-06-11 14:54 5991. 这里主要演示属性的继承和覆盖 2. 把属性理解为方法 ... -
C#拾遗系列(3):构造函数
2008-06-11 15:19 6291. 主要演示构造函数的继承 ... -
C#拾遗系列(4):索引器
2008-06-11 15:30 5901. 概述 索引器允许类或结构的实例就像数组一样进行索引。索引 ... -
C#拾遗系列(5):泛型委托
2008-06-14 17:25 678using System; using System.Col ... -
C#拾遗系列(6):迭代器
2008-06-14 23:03 7091. 示例: using System; using Sys ...
相关推荐
#### 二、ILDASM工具简介 ILDASM是一款强大的工具,用于查看.NET程序集(Assembly)中的MSIL代码。它可以帮助开发者深入了解程序集的内部结构,并提供了从程序集中提取MSIL代码的能力。通过ILDASM,我们可以浏览...
#### 一、MSIL简介 MSIL(Microsoft Intermediate Language),即微软中间语言,是一种用于.NET框架的平台独立的汇编语言。它由编译器生成,而不是直接由源代码编写而成。当.NET应用程序被编译时,源代码首先被转换...
微软中间语言(Microsoft Intermediate Language,简称MSIL或IL)是.NET框架中的一种通用中间语言,它被设计成一种平台无关的语言,用于在运行时由公共语言运行时(Common Language Runtime,CLR)解释执行或即时...
**C#语言简介** C#(读作"C sharp")是一种由微软公司开发的面向对象的编程语言,设计目标是成为高效、现代化且具有高级特性的编程工具,特别是在微软的.NET框架下。C#旨在结合C/C++的灵活性和VB的易用性,为开发者...
- **数据类型简介** - **整型 `int`**:用于存储整数值。 - **浮点型 `double`**:默认的浮点数类型,适合大多数需要小数的场景。 - **浮点型 `decimal`**:适用于金融计算等需要高精度的场景。 - **字符型 `...
一、 简介 程序集,作为.NET时代的动态链接库,蕴藏了太多的软件秘密。为此,Visual Studio内置的ILDASM成为最初挖掘程序集的上佳工具。但自从Reflector出现后,ILDASM相形见拙。因为,Reflector能提供更多的程序...
### MSIL简介 MSIL(Microsoft Intermediate Language)是.NET框架中的低级语言,它是编译器将源代码转换成的形式,可以被.NET JIT(Just-In-Time)编译器进一步转换为机器码执行。MSIL提供了一种平台无关的方式,...
简介 程序集,作为.NET时代的动态链接库,蕴藏了太多的软件秘密。为此,Visual Studio内置的ILDASM成为最初挖掘程序集的上佳工具。但自从Reflector出现后,ILDASM相形见拙。因为,Reflector能提供更多的程序集...
一、 简介 程序集,作为.NET时代的动态链接库,蕴藏了太多的软件秘密。为此,Visual Studio内置的ILDASM成为最初挖掘程序集的上佳工具。但自从Reflector出现后,ILDASM相形见拙。因为,Reflector能提供更多的程序...
一、 简介 程序集,作为.NET时代的动态链接库,蕴藏了太多的软件秘密。为此,Visual Studio内置的ILDASM成为最初挖掘程序集的上佳工具。但自从Reflector出现后,ILDASM相形见拙。因为,Reflector能提供更多的程序...
#### 一、PowerShell简介 PowerShell 是一款由微软开发的强大脚本语言和命令行工具,主要用于系统管理和自动化任务处理。它基于.NET框架,能够帮助用户实现对Windows系统的深入控制与管理。 #### 二、添加引用 在...
CLR还提供了一种名为中间语言(MSIL)的通用语言,所有.NET语言编译后的代码都会被转化为MSIL,再由CLR在运行时将其转换为机器码。 - **框架类库(FCL)**:包含了丰富的预定义类,这些类封装了常用的编程功能,如...
第1章 Visual C++ 2010开发环境简介 1 1.1 Visual C++ 2010简介 1 1.2 Visual C++ 2010下载安装指南 1 1.3 Visual C++ 2010主要特点与新特性 3 1.4 Visual C++ 2010开发环境操作指南 6 1.4.1 创建Visual C++应用程序...
一、 简介 程序集,作为.NET时代的动态链接库,蕴藏了太多的软件秘密。为此,Visual Studio内置的ILDASM成为最初挖掘程序集的上佳工具。但自从Reflector出现后,ILDASM相形见拙。因为,Reflector能提供更多的程序...