子曾经曰过

  博客园  :: 首页  ::  ::  ::  :: 管理

1.4 执行程序集代码

托管模块中包含着元数据和IL代码,IL是一种独立于CPU的机器语言,它高级的地方在于能理解对象类型,并且拥有很多高级的指令,这些指令可以创建和初始化对象,调用对象上的虚方法,以及直接操作数组元素,甚至有抛出和捕获异常的指令,可以看做是一个面向对象的机器语言。

C#是一种高级语言,编译后产生的就是IL代码。也可以直接以汇编语言的方式编写IL程序,微软的IL汇编器 ILAsm.exe和反汇编器ILDasm.exe。

任何高级语言大多数情况下提供的只是CLR全部功能的一个子集。但IL汇编语言允许开发人员获取CLR所有的功能。另一个关于IL要记住的要点是它并不束缚于任何特定的CPU平台,前提是该CPU平台的OS寄宿了某个版本的CLR。

目前的CPU不能直接执行IL指令,还得转换成本地CPU指令。这属于CLR中即时JIT编译器的工作。下图表示了执行IL的过程

待续

posted on 2011-02-17 22:35  人的本质是什么?  阅读(207)  评论(0编辑  收藏  举报