MSIL研究 0
是时候研究IL方面的程序了,太多这方面的技术点需要总结。准备写一个系列,关于IL的全部。
先总结一下,看完老瓦的Video后的一些心得笔记:
Opcode指令集
IL代码:
1.directive声明,以.开头
2.instruction声明,不以.开头
3.entrypoint 程序入口
4.ansi,与非托管代码交互式,标记字符集
5.auto,自动最优化排列成员
6.hidbysig,隐藏父类中被覆写的方法
7.cil managed,生成托管代码
8.assembly.extern 引用外部程序集
不能显示调用cctor
所有的局部变量在编译成IL后,都丢失了原来的名字,代替以V_0, V_1等等
静态变量都会初始化为0;实例变量不保证初始化——于是C#编译器会帮助检查
ldarg.0 将第0个变量调用到栈上
ldc.i4.2 将常量2加载到栈上
stfld 将栈上数据存入成员变量中
assembly 逻辑上
module 物理上
*VS2005不支持编译为module