0

私はまだどのコードがMSILと呼ばれているのか混乱しています。

他のコンパイラの中でも、C#はアセンブリを生成します。ILASMはアセンブリも作成します。それらのアセンブリにはMSILが含まれていますか?

アセンブリを入力として取得するときにILDASMによって生成されるコードはどうですか?生成されたコードはMSILと呼ばれていますか?

4

3 に答える 3

2

MSIL=Microsoft中間言語

MSILは、すべての.NETコンパイラの出力です。これは、MSILアセンブリコードまたはバイナリ形式で表現できます。後者は、コンパイルされたアセンブリ内にあるものです。

于 2013-02-10T05:17:36.173 に答える
2

MSILは、C#がコードをコンパイルする「マシンコードのような」言語です。

CLRは、MSILが実行される「マシン」です。

MSILを実行すると、CLRはJITを使用してコードを実際のマシンコードに変換します。

実際のマシンコードは、コンピューターの実際のCPUで実行されます。

MSILアセンブラ(Ilasm.exe)は、Microsoft中間言語(MSIL)からポータブル実行可能ファイル(PE)ファイルを生成します。ILDASMは、逆のことを行う逆アセンブラです。

PE形式は、EXE、DLL、SYS(デバイスドライバー)、およびその他のファイルタイプに使用されます。

于 2013-02-10T05:18:30.230 に答える
2

C#コンパイラはアセンブリを生成します。アセンブリには、メタデータとMSILが含まれています。VB.NET(現在は単にVBと呼ばれています)も同じものを生成します。C /C++コンパイラはMSILも作成できます。ILアセンブラ(ILASM)は、ILを取得してアセンブリを生成できます。

ILDASMは逆アセンブラです。IL(MSIL)を文書化した詳細については、こちらをご覧ください。

于 2013-02-10T05:18:38.267 に答える