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 .