(翻译)《Expert .NET 2.0 IL Assembler》 详要目录 更新到第8章

Expert .NET 2.0 IL Assembler

——精通.NET 2.0 IL汇编程序

 

关于作者

绪论

概要目录 

电子书下载

 

1部分       快速入门

第1章           简单示例

1.1     CLR简介

1.2     简单示例:The Code

     程序头     

     类声明

     字段声明

     方法声明

     全局项

     映射字段

     数据声明

     作为占位符的值类型

     调用非托管代码

1.3     类的预先声明

1.4     小结 

 

第2章           代码增强

2.1     代码压缩

2.2     代码保护

2.3     小结

 

第3章           使代码更简单

     3.1     别名

     3.2     Compilation Control Directives

     3.3     关联当前类和它的引用项

     3.4     小结

 

2部分       底层结构

第4章           托管可执行体文件的结构

4.1     PE/COFF

MS-DOS 头/占位程序 PE特征

COFF

PE

区域头

4.2     CLR

头结构

Flags字段

EntryPointToken字段

VTableFixups字段

StrongNameSignature字段

重定位区段

正文区段

数据区段

数据常量

V-表

非托管导出表

线程局部存储

4.3     小结

阶段1:初始化

阶段2:源代码解析

阶段3:图像生成

阶段4:完成

 

第5章           元数据表的组织

5.1     什么是元数据

5.2     堆和表

      通用元数据头

      元数据表流

5.3     RID和标志

RID

标志

编码标志

5.4     元数据和验证

5.5     小结

 

3部分       基本组件

第6章           模块和程序集

6.1     什么是程序集

6.2     私有程序集和共享程序集

6.3     作为逻辑执行单元的应用程序域

6.4     清单

6.5     程序集元数据表和声明

6.6     AssemblyRef元数据表和声明

被引用的程序集的自动侦测

6.7     加载程序搜索程序集

6.8     Module元数据表和声明

6.9     ModuleRef元数据表和声明

6.10 File元数据表和声明

6.11 托管资源元数据表和声明

6.12 ExportedType元数据表和声明

6.13 ILAsm中清单声明的次序

6.14 单模块和多模块程序集

6.15 元数据验证规则小结

Assembly表验证规则

AssemblyRef表验证规则

Module表验证规则

ModuleRef表验证规则

File表验证规则

Manifest表验证规则

ExportedType表验证规则

 

第7章           名称空间和类

7.1     类的元数据

TypeDef元数据表

TypeRef元数据表

InterfaceImpt元数据表

NestedClass元数据表

ClassLayout元数据表

7.2     命名空间和完整类名

ILAsm命名规则

命名空间

完整类名

7.3     类的特性

标志

类的可见性和友元程序集

类的引用

父类型

接口的实现

类的布局信息

7.4     接口

7.5     值类型

值的装箱和拆箱

值类型的实例成员

值类型的派生

7.6     枚举

7.7     委托

7.8     内嵌类型

7.9     类的扩充

7.10 元数据验证规则小结

TypeDef表验证规则

Enumeration-Specific验证规则

TypeRef表验证规则

InterfaceImpt表验证规则

NestedClass表验证规则

ClassLayout表验证规则

  

第8章           基本类型和签名

8.1     CLR中的基本类型

    基本数据类型

数据指针类型

函数指针类型

向量和数组

修饰符

本地类型

变量类型

8.2     签名中的类表示

8.3     签名

调用约定

字段特征

方法和属性签名

MenberRef签名

间接调用签名

局部变量签名

类型说明

8.4     签名验证规则小结

 

第9章           宇段和数据常量

9.1     字段元数据

定义一个字段

引用一个字段

9.2     实例和静态字段

9.3     默认值

9.4     映射字段

9.5     数据常量声明

9.6     显示布局和联合声明

9.7     全局字段

9.8     构造函数和数据常量

9.9     元数据验证规则小结

Field表验证规则

FieldLayout表验证规则

FieldRVA表验证规则

FieldMarshal表验证规则

Constant表验证规则

MemberRef表验证规则

 

第10章       方法

10.1 方法元数据

方法表的记录项

方法标志

方法名

方法实现标志

方法参数

引用方法

方法实现元数据

10.2 静态方法、实例方法和虚方法

10.3 显示方法重载

10.4 方法重载和访问性

10.5 方法头特性

10.6 局部变量

10.7 类的构造函数

类的构造函数和预初始化标志

模块的构造函数

10.8 实例构造函数

10.9 实例的终止函数

10.10            变量参数列表

10.11            方法重载

10.12            全局方法

10.13            元数据验证规则小结

Method表验证规则

Param表验证规则

MethodImpl表验证规则

 

第11章       泛型类型

11.1 泛型元数据

11.2 约束标志

11.3 ILAsm中定义泛型

11.4 类型参数的寻址

11.5 泛型实例

11.6 定义泛型:继承、实现、约束

11.7 定义泛型:循环依赖性

11.8 泛型成员:泛型中的虚方法

11.9 内嵌泛型

11.10            元数据验证规则小结

 

第12章       泛型方法

12.1 泛型方法元数据

12.2 泛型方法签名

12.3 ILAsm中定义泛型方法

12.4 调用泛型方法

12.5 重载虚泛型方法

12.6 元数据验证规则小结

 

4部分       深入执行体引擎

第13章       IL指令

13.1 长参数和短参数指令

13.2 标签和流控制指令

无条件转移指令

有条件转移指令

比较转移指令

switch指令

break指令

托管EH块退出指令

EH块结束指令

ref指令

13.3 运算指令

栈操作

常量加载

间接加载

间接存储

算术操作

溢出算术操作

位逻辑运算操作

移位操作

转换操作

溢出转换操作

逻辑条件检查操作

块操作

13.4 寻址参数和局部变量

方法参数加载

方法参数地址加载

方法参数存储

方法参数列表

局部变量加载

局部变量引用加载

局部变量存储

局部块存储单元分配

前缀指令

13.5 寻址字段

13.6 调用方法

直接调用

间接调用

尾部调用

有约束的虚调用

13.7 寻址类和值类型

13.8 向量指令

向量创建

元素地址加载

元素加载

元素存储

13.9 代码验证

 

第14章       托管型异常处理

14.1 EH子句的内部表示

14.2 EH子句的类型

14.3 EH子句声明的标签格式

14.4 EH子句声明的作用域格式

14.5 处理异常

14.6 异常类型

加载异常

JIT编译器异常

执行引擎异常

互操作异常

子类异常

非托管异常映射

12.7 EH子句结构化规则小结

 

5部分       特殊组件

第15章       事件和属性

15.1 事件和委托

15.2 事件元数据

Event

EventMap

MethodSemantics

15.3 事件声明

15.4 属性元数据

Property

PropertyMap

15.5 属性声明

15.6 元数据验证规则小结

Event表的验证规则

EventMap表的验证规则

Property表的验证规则

PropertyMap表的验证规则

MethodSemantics表的验证规则

 

第16章       自定义特性

16.1 自定义特性的概念

16.2 CustomAttribute元数据表

16.3 自定义特性的值编码

16.4 自定义特性的口头描述

16.5 自定义特性的分类

执行引擎和JIT编译器

互操作子系统

安全

远程子系统

Visual Studio调试器

程序集链接器

CLR兼容器

伪自定义特性

16.6 元数据验证规则小结

 

第17章       安全特性

17.1 声明性安全

17.2 声明性操作

17.3 安全许可权限

访问许可权限

身份许可权限

自定义许可权限

许可权限集

17.4 声明性安全元数据

17.5 权限集合块编码

17.6 安全特性声明

17.7 元数据验证规则小结

 

第18章       托管和非托管代码的互操作

18.1 替换程序和包装器

P/Invoke替换程序

实现映射元数据

IJW替换程序

COM可调用包装器

运行时可调用包装器

18.2 数据编组

Bittable类型

In/Out参数

字符串数组

对象编组

更多对象编组

数组编组

委托编组

18.3 为非托管方法提供托管方法作为回调

18.4 作为非作为非托管输出的托管方法

输出表的编组

18.5 小结

 

第19章       多语言工程

19.1 IL反编译器

19.2 双向解析的原则

19.3 创造性的双向解析

19.4 使用类的增强

19.5 通过双向解析进行模块链接

19.6 ASMMETA:解决循环依赖性

19.7 内嵌在高级语言中的IL

19.8 调试模式中的编译

19.9 小结

 

6部分       附录

       附录A    ILAsm语法

       附录B    元数据表

       附录C    IL指令集

       附录D    IL AssemblerIL Disassembler的命令行选项

       附录E    离线验证工具

 

索引

 

部分专有名词翻译:

Expert

 

Property 属性

Attribute 特性

Managed 托管的

Executable File 可执行体文件

 

CompactCompacting

 

Class Augmentation 类的扩充

Derivation 派生

Convention 约定

Signature        特征/签名     

Label      标签

Branching       转移

Cyclic Dependencies      循环依赖性

Clause     子句

Pseudo 伪的

Signature 签名(第一版翻译为特征,这里不沿袭)

 

posted @ 2008-07-19 19:15 包建强 阅读(2181) 评论(30)  编辑 收藏 所属分类: .NET MSIL

  回复  引用    
#1楼 2008-07-19 19:39 | 质疑 [未注册用户]
前些天说要写的那个网络游戏的系列呢?
没有了?
有点怀疑你的人品。。。
  回复  引用  查看    
#2楼 [楼主]2008-07-19 19:55 | 包建强      
@质疑
网络游戏大厅,已经写到第3篇,会在一个月内写完。
上午翻译,下午介绍网络游戏大厅,晚上写书《WPF SDK深入研究》,一个都不能少。
  回复  引用  查看    
#3楼 2008-07-19 19:59 | Justin      
老包,这个什么时候出版啊?
  回复  引用  查看    
#4楼 [楼主]2008-07-19 20:04 | 包建强      
@Justin
读者群小,没有出版社愿意接手。
  回复  引用    
#5楼 2008-07-19 20:10 | drj18 [未注册用户]
你太强了,fans
  回复  引用  查看    
#6楼 2008-07-19 20:17 | Justin      
@包建强
你准备自己翻译?
  回复  引用  查看    
#7楼 2008-07-19 20:33 | Simens      
包公:你文章发得也太快了啊
  回复  引用  查看    
#8楼 [楼主]2008-07-19 20:36 | 包建强      
@Simens
最近一个月离职在家,我估计,以后博客园首页要波涛汹涌了。
  回复  引用  查看    
#9楼 2008-07-19 20:37 | Jeffrey Zhao      
版权阿版权,小包子当心
  回复  引用  查看    
#10楼 2008-07-19 20:55 | 绿蚂蚁      
电子书不错,thanks
  回复  引用  查看    
#11楼 2008-07-19 21:40 | Tristan Guo      
啊,你离职啦?

这本书我看了一半, 作为.net开发人员,了解一下有必要,但深入的话,恐怕也不用.
  回复  引用    
#12楼 2008-07-19 21:50 | J [未注册用户]
nice job!
  回复  引用    
#13楼 2008-07-19 22:08 | Pelican [未注册用户]
Do you think there is a need to translate this book?

I think it is easy and clear to read the English edition. Once it is translated, it is hard to understand.

Cheers,

ERIC

P.S.

How do you translate "P/Invoke"?
  回复  引用  查看    
#14楼 [楼主]2008-07-19 22:18 | 包建强      
@Pelican
try my best
  回复  引用  查看    
#15楼 2008-07-19 22:34 | 横刀天笑      
你一个人翻译?这个貌似有点艰巨啊,19章。要是需要招呼俺一下,俺也帮你翻两页,呵呵
  回复  引用  查看    
#16楼 2008-07-19 22:40 | margiex      
顶.
  回复  引用  查看    
#17楼 2008-07-19 23:24 | Colin Han      
呵呵,不错的样子,如果出书,我会买的。
  回复  引用    
#18楼 2008-07-20 00:11 | worksguo [未注册用户]
支持
  回复  引用  查看    
#19楼 2008-07-20 07:02 | 银河      
支持。
.NET 程序确实非常有必要学习 IL Assembler。
就算不要求精通,也需要知道其基础知识。

  回复  引用    
#20楼 2008-07-20 08:48 | 信110 [未注册用户]
相当支持!
看了英文前几章,实在晕乎,以后可以对比着看-_-
  回复  引用    
#21楼 2008-07-20 11:33 | 专治各种不服 [未注册用户]
哎。。。 连这样的人都写书,怪不得国内的计算机书籍这么差劲,就是因为太多像你这样的人啦,你懂编程吗?你扪心自问一下你自己 是所谓的真正的程序员吗?兄弟! 别害人啦.
  回复  引用  查看    
#22楼 2008-07-20 12:14 | 飄lá┽蕩去      
支持,不必精通,不过还是要了解
对E文是相当的头疼
  回复  引用  查看    
#23楼 [楼主]2008-07-20 12:26 | 包建强      
@专治各种不服
多谢鞭策,我会严格要求自己的。
  回复  引用  查看    
#24楼 2008-07-20 18:17 | dicky      
大哥, ME太喜欢你了..
因本人英语实在是X.. 但又非常想看这本. :(
已经在园子地头傻等了很长时间了,
今天终于被我等到了.. :(`` (感动)
我在这先谢谢了..
  回复  引用  查看    
#25楼 2008-07-21 09:33 | Terry Sun      
感谢 :-)
  回复  引用  查看    
#26楼 2008-07-21 14:35 | 晴空      
06年从旧书摊上5块钱淘到一本1.1的,这样的书手册的意义更大一些,好好读
C# via CLR更实际些。
  回复  引用  查看    
#27楼 2008-07-23 10:32 | John Rambo      
这本书就是inside msil的第二版吗?
  回复  引用    
#28楼 2008-07-25 08:42 | zzzz [未注册用户]
相当的好,原来还以为只有advanced .net programming讲的比较详细了
  回复  引用  查看    
#29楼 2008-08-04 09:44 | 董昊(昊子)      
@专治各种不服
太过分
  回复  引用  查看    
#30楼 2008-08-14 11:16 | dicky      
欢迎回来.. :)

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-09-13 17:02 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接:

历史上的今天:
2007-07-19 SharpDevelop使用心得