MSIL入门-HelloWorld - 翔如飞飞

时间:2024-02-23 18:37:58

MSIL入门-HelloWorld

  MSIL,就是大家所熟知的 微软中间语言(Microsoft Intermediate Language)的简称,它是一种介于高级语言和基于Intel的汇编语言的伪汇编语言。当用户编译一个.Net程序时,编译器将源代码翻译成一组可以有效地转换为本机代码且独立于CPU 的指令。当执行这些指令时,实时(JIT)编译器将它们转化为CPU特定的代码。由于公共语言运行库支持多种实时编译器,因此同一段MSIL代码可以被不同的编译器实时编译并运行在不同的结构上。

   今天我们就构建一个MSIL版本的HelloWorld:

1.在UE中键入如下程序:

.assembly HelloWorldIL {}
.method static void  HelloWorld()
{
    .entrypoint
    ldstr "Hello World."
    call void [mscorlib]System.Console::WriteLine(class System.String)
     ret
}

简单的解释下:

.assembly 后是程序集名称.

entrypoint定义程序的入口点

.maxstack定义函数代码所用堆栈的最大深度。

ldstr 加载字符串到栈

call 调用静态函数

ret 调用从函数返回

 

接下了我们看如何执行此程序

保存程序为Helloworld.il(比如保存为D盘根目录下)

打开Visual Studio 2008或者2005的 Command Prompt

 在命令行下定位到D盘 然后输入:

ilasm Helloworld.il

这样会编译IL程序,看到Operation Completed Successfully 则证明编译成功。在IL程序所在目录下看到Helloworld.exe

再在命令行下输入:Helloworld 则会看到输出 Hello World.

这样我们就构建了我们的第一个MSIL Helloworld .