学习_你必须知道的.net2_第四章_一切从IL开始

IL体验中心:

 1: .class表示是一个类  ;  .public表示访问权限  ; auto表示程序加载时内存由CLR决定的,而不是程序本身

  .ansi实现托管与非托管代码的无缝转换;   .beforefieldinit为附加信息,在静态字段执行之行,可以在任何时候执行构造函数

  .cil managed说明为IL代码,指示编译器编译为托管代码 ;maxstack执行.ctor可容纳最大个数

  .IL_0000是一个标识代码行开头; ldarg.0即load argment表示装载第一个成员参数

  call一般调用静态方法,因为静态方法是在编译时确定,callvirt表示调用实例方法

  ret即return

  entrypoint是CLR执行程序的入口点

  ldstr即load string,表示将字符串压栈,字符串被移到stack顶部,CLR通过元数据表中获得文字常量来构造string对象

  hidebysig表示如果作父类,则该方法不会被继承

  locals用来声明局部变量

  ld将变量从内存中装载到堆栈上面,而st开头对应存储指令

  ldc将数字压入堆栈,ldind加载间接寻址,ldlen加载数组长度,ldelem加载元素

  ldloc加载局部变量到堆栈,ldloca加到局部变量的地址到堆栈

  ldfld/ldsfld将实例,静态字段加入堆栈

  ldarg/ldarga装载成员参数/装载成员参数地址

  .s表示取单个字节

  brturn/br.s用于条件跳转

--------------------------------看的想吐了。。。这尼玛感觉是在搞汇编啊-------------------

 

  

posted @ 2013-11-05 17:20  jessetang  阅读(161)  评论(0编辑  收藏  举报