(翻译) 《C# to IL》第一章 IL入门
2009-05-29 08:31:17 来源:WEB开发网因此,在功能上,它类似于C#中的Main函数。当C#代码被转换为IL代码时,在Main函数中包含的代码会被转换为IL中的函数中并包括.entrypoint伪指令。例如,如果在COBOL程序中执行的第一个函数被称为abc,那么在IL中生成的代码就会在这个函数中插入.entrypoint伪指令。
在常规的程序语言中,首先被执行的函数必须有一个特定的名称,例如Main,但是在IL中,只需要一个.entrypoint伪指令。因此,因为一个程序只能由一个开始点,所以在IL代码中只允许一个函数包括.entrypoint伪指令。
迫切地看到,没有生成任何错误消息编号或说明,使得调试这个错误非常困难。
a.il
.assembly mukhi {}
.method void vijay()
{
ret
.entrypoint
}
.entrypoint伪指令需要被定位为函数中的第一个指令或最后一个指令。它仅出现在函数体中,从而将它的状态宣布为第一个被执行的函数。伪指令不是程序集指令,甚至可以被放置在任何ret指令之后。提醒你一下,ret表示函数代码的结束。
a.il
.assembly mukhi {}
.method void vijay()
{
.entrypoint
call void System.Console::WriteLine()
ret
}
我们可能有一个用C#、VB.NET编写的函数,但是在IL中执行这个函数的机制是相同的。如下所示:
我们必须使用汇编指令调用。调用指令之后,按照给定的顺序,为以下详细内容:
函数的返回类型(void)
命名空间(System)
类 (Console)
函数名称 (WriteLine())
函数被调用但不会生成任何输出。因为,我们传递一个参数到WriteLine函数中。
- ››Illustrator CS6 打造孔雀花纹的字体
- ››TOscilloscope 仿Windows任务管理器CPU使用记录组...
- ››Illustrator教程:设计制作几何花瓣LOGO
- ››Illustrator实例教程:漂亮证卡变幻线的制作
- ››Illustrator文字教程:制作漂亮质感描边字
- ››Illustrator鼠绘:渐变工具运用绘制金属闹钟
- ››Illustrator鼠绘:教你画一个可爱卡通宝宝教程
- ››Illustrator简单四步做透明气泡教程
- ››Illustrator教程:制作漂亮的新货吊牌
- ››Illustrator教程:改变圆角矩形中一个圆角半径
- ››Illustrator教程:如何用网格工具绘制花瓣
- ››Illustrator涂抹命令打造文字草图特效
更多精彩
赞助商链接