[Programming IL] 从Hello World开始

名词解释

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

posted on 2008-09-12 09:21 xwang 阅读(...) 评论(...) 编辑 收藏

导航

统计