這就創建了一個txt文件,具有下面的內容:
a.txt
// Microsoft (R) .Net Framework IL Disassembler. Version 1.0.2204.21
// Copyright (C) Microsoft Corp. 1998-2000
// VTableFixup Directory:
// No data.
.subsystem 0x00000003
.corflags 0x00000001
.assembly extern mscorlib
{
.originator = (03 68 91 16 D3 A4 AE 33 ) // .h..3
.hash = (52 44 F8 C9 55 1F 54 3F 97 D7 AB AD E2 DF 1D E0
F2 9D 4F BC ) // RD..U.T?O.
.ver 1:0:2204:21
}
.assembly a as "a"
{
.hash algorithm 0x00008004
.ver 0:0:0:0
}
.module aa.exe
// MVID: {89CFAD60-F5BD-11D4-A55A-96B5C7D61E7B}
.class private auto ansi zzz
extends System.Object
{
.method public hidebysig static void vijay() il managed
{
.entrypoint
// Code size 11 (0xb)
.maxstack 8
IL_0000: ldstr "hell"
IL_0005: call void System.Console::WriteLine(class System.String)
IL_000a: ret
} // end of method zzz::vijay
.method public hidebysig specialname rtspecialname
instance void .ctor() il managed
{
// Code size 17 (0x11)
.maxstack 8
IL_0000: ldstr "hell"
IL_0005: call void System.Console::WriteLine(class System.String)
IL_000a: ldarg.0
IL_000b: call instance void [mscorlib]System.Object::.ctor()
IL_0010: ret
} // end of method zzz::.ctor
} // end of class zzz
//*********** DISASSEMBLY COMPLETE ***********************
當我們閱讀上面的 文件時,你將明白它的所有內容都已經在前面解釋過了。我們開始於一個簡單的C#程序,然後將它編譯到 一個可執行文件中。在正常的環境下,它將被轉換為機器語言或這個程序運行在所在的計算機/微處理器 的匯編程序。一旦創建了可執行體,我們就使用ildasm來反匯編它。反匯編輸出被保存到一個新的文件 a.txt中。這個文件可能被命名為a.il,然後我們可以通過對其運行ilasm反過來再次創建這個可執行體。
讓我們看一下最小的VB.Net程序。我們將它命名為one.vb,而它的源代碼如下所示:
one.vb
Public Module modmain
Sub Main()
System.Console.WriteLine("hell")
End Sub
End Module
在編寫完上述的代碼後,我們運行Visual.Net編譯器vbc如下:
>vbc one.vb
這就產生了文件one.exe。