学习CIL
时间:2020-03-05 18:47:57 来源:igfitidea点击:
有人知道有什么好的资源可以学习如何使用命令等的深入描述对CIL进行编程吗?我环顾四周,但没有发现特别好的地方。
解决方案
回答
Serge Lidin的Expert .NET 2.0 IL汇编程序
同一本书有一个1.1版本,但最新的.NET版本我什么也没看到。这是一本好书。我用它来编写MSIL中的OCR组件,作为一个学习项目。
[编辑] @Curt是正确的,3.0和3.5只是对2.0的扩展,我还没有将其插入我的脑海。现在,我想到了一个有趣的怪胎项目……将标准2.0代码的反汇编与执行常见任务(如过滤列表)的LINQ / Lambda新方法进行比较。由于某种原因,我认为魔术正在新的IL功能中发生,而不仅仅是编译器。
回答
我书架上唯一的CIL书籍是Serge Lidin撰写的Expert .NET 2.0 IL Assembler。关于各个操作码的作用或者含义,有关System.Reflection.Emit的Microsoft文档提供了一些很好的信息。使用Reflector查看现有的IL总是很有用的。
编辑:.NET 2.0和.NET 3.5之间的CIL(甚至实际上是CLR)根本没有改变-底层运行时基本上是相同的,并且对模块进行了修复,并提高了性能。因此,在CIL级别上没有比在2.0本书中更新的版本了
回答
专家.NET 2.0 IL汇编器之所以令人难以置信,是因为作者写得很好,并包含了我们可以想象的每一个细节。他编写了IL汇编程序,反汇编程序和验证程序并没有什么害处。最棒的是,我们可以购买PDF而不是枯树。
对编译器开发感兴趣的受虐狂也将喜欢John Gough的.NET Common Language Runtime的编译。在虚拟机开发项目中,我从" CLR"设计中"窃取"了很多想法,这本书对我很有帮助。