好学IT学院:IT信息技术分享交流平台
标签:.NET  来源:互联网  作者:本站整理  发布时间:2009-09-04  ★★★加入收藏〗〖手机版
摘要:MSIL汇编程序从Microsoft中间语言(MSIL)生成可移植可执行的(PE)文件。可以运行结果可执行文件(该文件包含MSIL和所需的元数据)以确定MSIL是否按预期执行。…

使用示例

下面的命令对 MSIL 文件 myTestFile.il 进行汇编并产生可执行文件 myTestFile.exe.
ilasm myTestFile

下面的命令对 MSIL 文件 myTestFile.il 进行汇编并产生 .dll 文件 myTestFile.dll。
ilasm myTestFile /dll

下面的命令对 MSIL 文件 myTestFile.il 进行汇编并产生 .dll 文件 myNewTestFile.dll。
ilasm myTestFile /dll /output:myNewTestFile.dll

下面的代码示例演示一个向控制台显示“Hello World!”的极其简单的应用程序。可编译此代码,然后使用 Ildasm.exe 工具生成 MSIL 文件。
C# 复制代码
using System;
public class Hello
{
  public static void Main(String[] args)
  {
      Console.WriteLine("Hello World!");
  }
}

下面的 MSIL 代码示例对应于前面的 C# 代码示例。可使用 MSIL 汇编程序 (Ilasm.exe) 工具将此代码编译为程序集。MSIL 和 C# 代码示例都向控制台显示“Hello World!”。
// Metadata version: v2.0.50215
.assembly extern mscorlib
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                       // .z\V.4..
  .ver 2:0:0:0
}
.assembly sample
{
  .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
  .hash algorithm 0x00008004
  .ver 0:0:0:0
}

.module sample.exe
// MVID: {A224F460-A049-4A03-9E71-80A36DBBBCD3}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003     // WINDOWS_CUI
.corflags 0x00000001  //  ILONLY
// Image base: 0x02F20000

// =============== CLASS MEMBERS DECLARATION ===================

.class public auto ansi beforefieldinit Hello
     extends [mscorlib]System.Object
{
  .method public hidebysig static void  Main(string[] args) cil managed
  {
  .entrypoint
  // Code size     13 (0xd)
  .maxstack  8
  IL_0000:  nop
  IL_0001:  ldstr    "Hello World!"
  IL_0006:  call     void [mscorlib]System.Console::WriteLine(string)
  IL_000b:  nop
  IL_000c:  ret
  } // end of method Hello::Main

.method public hidebysig specialname rtspecialname
        instance void  .ctor() cil managed
  {
  // Code size     7 (0x7)
  .maxstack  8
  IL_0000:  ldarg.0
  IL_0001:  call     instance void [mscorlib]System.Object::.ctor()
  IL_0006:  ret
  } // end of method Hello::.ctor
} // end of class Hello

ActiveReport For .Net开发程序简介
  ActiveReport是.net下的一个出色的报表开发程序,虽然和水晶报表相比,名气不那么大,甚至有很多人不知道它的存在,但是并…
  • 好学触屏公众号虎力全开、杨帆起航!
  • 好学考试H5触屏版开放内测