(翻译) 《C# to IL》第一章 IL入门
2009-05-29 08:31:17 来源:WEB开发网Output
hell
你一定想知道为什么我们会编写出这么难看的程序。在迷雾驱散之前你需要保持耐心,所有的一切就要开始有意义了。我们将逐个解释新引进的函数和特性。
.ctor: 我们引进了一个新的函数.ctor,它调用了WriteLine函数来显示hell1,但是它没有被调用。.ctor涉及到了构造函数。
rtspecialname: 这个特性会告诉运行时——函数的名称是特殊的,它会以一种特殊的方式被对待。
specialname: 这个特性会提示编译器和工具——函数是特殊的。运行时可能选择忽略这个特性。
instance: 一个常规的函数会被一个实例函数调用。这样一个函数与一个对象关联,不同于静态方法,后者关联到一个类。
在合适的时候,为函数选择特定名称的原因会变得明朗。
ldarg.0: 这是一个汇编器指令,它加载this指针或第0个参数的地址到执行栈上。我们随后将详细解释ldarg.0。
mscorlib: 在上面的程序中,函数.ctor会被基类System.Object调用。通常,函数的名称以包括代码的库的名称作为前缀。这个库的名称被放置在方括号中。在这个例子中,它是可选的——因为mscorlib.dll是默认的库,并且它包括了.NET所需要的大部分类。
.maxstack: 这个伪指令指定了在一个方法被调用时,能够出现在计算栈上的元素的最大数量。
.module: 所有的IL文件必须是一个逻辑实体的一部分,或它们的组合体,我们将这些实体称为模块(module)。文件被添加到使用了.module伪指令的模块中。模块的名称可能被规定为aa.exe,但是可执行文件的名称和前面保持一样,即a.exe。
.subsystem: 这个指令用于指定可执行体运行在什么操作系统上。这是另一种指定可执行体所代表的种类的方式。一些数字值和它们对应的操作系统如下所示:
- ››Illustrator CS6 打造孔雀花纹的字体
- ››TOscilloscope 仿Windows任务管理器CPU使用记录组...
- ››Illustrator教程:设计制作几何花瓣LOGO
- ››Illustrator实例教程:漂亮证卡变幻线的制作
- ››Illustrator文字教程:制作漂亮质感描边字
- ››Illustrator鼠绘:渐变工具运用绘制金属闹钟
- ››Illustrator鼠绘:教你画一个可爱卡通宝宝教程
- ››Illustrator简单四步做透明气泡教程
- ››Illustrator教程:制作漂亮的新货吊牌
- ››Illustrator教程:改变圆角矩形中一个圆角半径
- ››Illustrator教程:如何用网格工具绘制花瓣
- ››Illustrator涂抹命令打造文字草图特效
更多精彩
赞助商链接