您的位置:首页 > 其它

[Programming IL] 从Hello World开始

2008-09-12 09:21 357 查看

名词解释

IL = Intermediate Language, 在.Net的设计中成为CIL = Common Intermediate Language, 而因为CIL本身是通用的,而微软为他设计了一种实现,在微软平台上我们也可以称他为MSIL

目标

为.Net平台的底层设计提供一个具体实现,基本编程语言的特性,如流程控制,判断,算术计算,地址等等。还有面向对象的具体设计,类和类之间的关系,隐藏,继承,接口等等。更有一些对函数式语言的支持,了解IL不仅仅是对程序的深一步理解,更是对.Net Framework产生框架性认识的重要依据。个人认为 :)

基础知识

每一个.Net应用程序或者是程序集都实际上一个PE(Portable Execution)文件, 关于PE文件格式等等的详细说明将在后面讲述

实例 - 从HelloWrold开始

代码:

1: .assembly extern mscorlib {}

2: .assembly hello {}

3: .method static public void main() cil managed

4: {

5:     .entrypoint

6:     .maxstack 1

7:     ldstr "Hello world!"

8:     call void [mscorlib]System.Console::WriteLine(class System.String)

9:     ret

10: }


1. mscorlib位于 %Windows%/Microsoft.NET/Framework/v2.0.50727 下,他是.Net程序和API交互的基础,包含了基础类库(BCL)的实现

2. 设置程序集名称为hello

3. ...

5. .entrypoint 入口点

6. 分配栈

7. 加载string

8. 调用方法

9. 返回

了解IL很久了,最近探索下.Net设计等等东西, 开始看IL也有一段时间了,工作比较忙,反而搁置了,写这个东西也不是为了啥,只是督促自己一下.

参考书籍:

Expert.NET 2.0 IL Assembler

Common Language Infrastructure Partition II
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: