Inside Microsoft .NET IL Assembler

副标题:无

作   者:(加)Serge Lidin著;袁勤勇等译

分类号:

ISBN:9787111124818

微信扫一扫,移动浏览光盘

简介

   许多有关.NET编程的书籍大都致力于介绍进行快速应用软件开发(RAD)的高级语言,而本书则深入剖析.NET公共语言运行环境的内部结构和操作,并且介绍了怎样驾驭详细描述这些结构和操作的IL汇编语言。实际上,.NET公共语言运行环境所进行的任何工作,IL汇编语言都能够进行解释。通过本书,可以学习到设计和实现IL Assembler、比Disassembler及元数据验证工具的开发人员所需了解的有关IL汇编语言的各种内容。本书适用于编译器开发人员、多语言项目的开发人员及其他开发用于.NETFramework平台的更紧凑、快速代码的人员。想成为.NET高手,请读本书。   

目录

第一部分 快速入门

第1章 简单示例

1.1 公共语言运行环境简介

1.2 开始简单示例

1.2.1 程序头

1.2.2 类声明

1.2.3 字段声明

1.2.4 方法声明

1.2.5 全局项

1.2.6 映射字段

1.2.7 数据声明

1.2.8 作为占位符的值类型

1.2.9 调用非托管代码

1.3 类的提前声明

1.4 小结


第2章 增强代码

2.1 代码维护

2.2 保护代码

2.3 小结

.

第二部分 底层结构


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

3.1 pe/coff头

3.1.1 ms-dos占位程序和pe特征

3.1.2 coff头

3.1.3 pe头

3.1.4 区域头

3.2 公共语言运行环境头

3.2.1 头结构

3.2.2 flags字段

3.2.3 entrypointtoken字段

3.2.4 vtablefixups字段

3.2.5 strongnamesignature字段

3.3 重定位区域

3.4 正文区域

3.5 数据区域

3.5.1 数据常量

3.5.2 v表

3.5.3 非托管导出表

3.5.4 线程局部存储

3.6 资源

3.6.1 非托管资源

3.6.2 托管资源

3.7 小结


第4章 元数据表组织

4.1 什么是元数据

4.2 堆和表

4.2.1 堆

4.2.2 通用元数据头

4.2.3 元数据表流

4.3 rid和标识

4.3.1 rid

4.3.2 标识

4.3.3 编码标识

4.4 元数据验证

4.5 小结


第三部分 基本组件


第5章 模块和配件

5.1 什么是配件

5.1.1 私有配件和共享配件

5.1.2 作为逻辑执行单元的应用域

5.2 清单

5.2.1 配件元数据表和声明

5.2.2 assemblyref元数据表和声明

5.2.3 加载程序搜索配件

5.2.4 module元数据表和声明

5.2.5 moduleref元数据表和声明

5.2.6 pde元数据表和声明

5.2.7 托管资源元数据和声明

5.2.8 expoaedtype元数据表和声明

5.3 ilasm中清单声明的次序

5.4 单模块配件和多模块配件

5.5 元数据验证规则

5.5.1 assembly表验证规则

5.5.2 assemblyref表验证规则

5.5.3 module表验证规则

5.5. 4 moduleref表验证规则

5.5.5 file表验证规则

5.5.6 manifestresouree表验证规则

5.5.7 expoaedtype表验证规则


第6章 名称空间和类

6.1 类元数据

6.1.1 typedef元数据表

6.1.2 typeref元数据表

6.1.3 interfacelmpl元数据表

6.1.4 nestedclass元数据表

6.1.5 classlayout元数据表

6.2 名称空间和全类名

6.2.1 ilasm命名规则

6.2.2 名称空间

6.2.3 全类名

6.3 类属性

6.3.1 标志

6.3.2 类引用

6.3.3 父类型

6.3.4 接口实现

6.3.5 类布局信息

6.4 接口

6.5 值类型

6.5.1 装箱值类型和拆箱值类型

6.5.2 值类型的实例成员

6.5.3 值类型的派生

6.6 枚举

6.7 委托

6.8 嵌套类型

6.9 类的扩增

6.10 元数据验证规则

6.10.1 typedef表的验证规则

6.10.2 指定枚举的验证规则

6.10.3 typeref表的验证规则

6.10.4 interfacelmpl表的验证规则

6.10.5 nestedclass表的验证规则

6.10.6 classlayout表的验证规则


第7章 基本类型和特征

7.1 公共语言运行环境中的基本类型

7.1.1 基本数据类型

7.1.2 数据指针类型

7.1.3 函数指针类型

7.1.4 向量和数组

7.1.5 修饰符

7.1.6 本机类型

7.1.7 变量类型

7.2 特征中的类表示

7.3 特征

7.3.1 调用约定

7.3.2 字段特征

7.3.3 方法和属性特征

7.3.4 memberref特征

7.3.5 间接调用特征

7.3.6 局部变量特征

7.3.7 类型说明

7.4 特征验证规则


第8章 宇段和数据常量

8.1 字段元数据

8.2 实例和静态字段

8.3 默认值

8.4 映射字段

8.5 数据常量声明

8.6 显式布局和联合声明

8.7 全局字段

8.8 构造函数与数据常量

8.9 元数据验证规则

8.9.1 field表的验证规则

8.9.2 fieldlayout表的验证规则

8.9.3 fieldrva表的验证规则

8.9.4 fieldmarshal表的验证规则

8.9.5 constant表的验证规则

8.9.6 memberref表的验证规则


第9章 方法

9.1 方法元数据

9.1.1 方法表记录的记录项

9.1.2 方法标志

9.1.3 方法名称

9.1.4 方法实现标志

9.1.5 方法参数

9.1.6 引用方法

9.1.7 方法实现元数据

9.2 静态、实例和虚拟方法

9.3 显式方法重载

9.4 方法头属性

9.5 局部变量

9.6 类构造函数

9.7 实例构造函数

9.8 实例的终止函数

9.9 变量参数列表

9.10 全局方法

9.11 元数据验证规则

9.11.1 method表验证规则

9.11.2 param表验证规则

9.11.3 methodlmpl表验证规则


第四部分 执行引擎剖析


第10章 几指令

10.1 长参数和短参数指令

10.2 标号和流控制指令

10.2.1 无条件转移指令

10.2.2 有条件转移指令

10.2.3 比较转移指令

10.2.4 switch指令

10.2.5 break指令

10.2.6 seh块退出指令

10.2.7 seh结束指令

10.2.8 ret指令

10.3 运算指令

10.3.1 栈控制

10.3.2 常量加载

10.3.3 间接加载

10.3.4 间接存储

10.3.5 算术操作

10.3.6 溢出算术操作

10.3.7 位逻辑运算操作

10.3.8 移位操作

10.3.9 转换操作

10.3.10 溢出转换操作

10.3.11 逻辑条件检查操作

10.3.12 块操作

10.4 寻址参数和局部变量

10.4.1 方法参数加载

10.4.2 方法参数地址加载

10.4.3 方法参数存储

10.4.4 方法参数列表

10.4.5 局部变量加载

10.4.6 局部变量引用加载

10.4.7 局部变量存储

10.4.8 局部块存储单元分配

10.4.9 前缀指令

10.5 寻址字段

10.6 调用方法

10.6.1 直接调用

10.6.2 间接调用

10.6.3 尾部调用

10.7 寻址类和值类型

10.8 向量指令

10.8.1 向量创建

10.8.2 元素地址加载

10.8.3 元素加载

10.8.4 元素存储

10.9 代码验证


第11章 结构化异常处理

11.1 seh子句的内部表示

11.2 seh子句的类型

11.3 seh子句声明的标号格式

11.4 seh子句声明的作用域格式

11.5 处理异常

11.6 异常类型

11.6.1 加载程序异常

11.6.2 jit编译器异常

11.6.3 执行引擎异常

11.6.4 互操作异常

11.6.5 子类异常

11.6.6 非托管异常映射

11.7 seh子句结构化规则


第五部分 特殊组件


第12章 事件和属性

12.1 事件和委托

12.2 事件元数据

12.2.1 event表

12.2.2 eventmap表

12.2.3 methodsemantics表

12.3 事件声明

12.4 属性元数据

12.4.1 property表

12.4.2 propertymap表

12.5 属性声明

12.6 元数据验证规则

12.6.1 event表的验证规则

12.6.2 eventmap表的验证规则

12.6.3 property表的验证规则

12.6.4 propertymap表的验证规则

12.6.5 methodsemantics表的验证规则


第13章 定制属性

13.1 定制属性的概念

13.2 customattribute元数据表

13.3 定制属性值编码

13.4 定制属性声明

13.5 定制属性分类

13.5.1 执行引擎和jit编译器

13.5.2 互操作子系统

13.5.3 安全

13.5.4 远程子系统

13.5.5 visual studio.net调试器

13.5.6 配件连接器

13.5.7 公共语言规范(cls)兼容性

13.5.8 伪定制属性

13.6 元数据验证规则


第14章 安全属性

14.1 描述性安全

14.2 描述性操作

14.3 安全许可权限

14.3.1 访问许可权限

14.3.2 身份许可权限

14.3.3 定制许可权限

14.3.4 许可权限集

14.4 描述性安全元数据

14.5 安全属性声明

14.6 元数据验证规则


第六部分 互操作性


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

15.1 替换程序和包装器

15.1.1 p/invoke替换程序

15.1.2 实现映射元数据和验证规则

15.1.3 ijw替换程序

15.1.4 com可调用包装器

15.1.5 运行时可调用包装器

15.2 数据编组

15.2.i blittable类型

15.2.2 in/out参数

15.2.3 字符串编组

15.2.4 对象编组

15.2.5 类的编组

15.2.6 数组编组

15.2.7 委托的编组

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

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


第16章 多语言工程

16.1 il反汇编器

16.2 双向解析的原则

16.3 创造性的双向解析

16.4 使用类的增强

16.5 通过双向解析进行模块连接

16.6 调试模式中的编译

第七部分 附 录

附录a il assembler语法

附录b 元数据表

附录c 几指令集

附录d il assembler和il disassembler的

命令行选项

附录e 离线验证工具


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Inside Microsoft .NET IL Assembler
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon