「共通中間言語」の版間の差分
imported>Administrator |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| (4人の利用者による、間の6版が非表示) | |||
| 1行目: | 1行目: | ||
'''共通中間言語''' | '''共通中間言語'''(読み:きょうつうちゅうかんげんご、[[英語]]:Common Intermediate Language、略称:CIL)とは、[[Mono]]および[[.NET Framework]]で用いられる[[アセンブリ言語]]、および[[共通言語基盤]]([[CLI]]、[[.NET]]の[[仮想マシン]])が理解できる架空の[[機械語]]のことである。 | ||
[[.NET Framework]]がベータ版だったころまでは「Microsoft Intermediate Language」([[MSIL]])として知られており、今なおMSILと呼ぶひとは多い。 | |||
== コード表現とバイナリイメージ表現 == | == コード表現とバイナリイメージ表現 == | ||
| 32行目: | 34行目: | ||
default void Main(string[] args) cil managed | default void Main(string[] args) cil managed | ||
{ | { | ||
// | // どうみてもエントリポイント | ||
.entrypoint | .entrypoint | ||
.maxstack 8 | .maxstack 8 | ||
| 887行目: | 889行目: | ||
| 0xFE 0x0E <uint16> | | 0xFE 0x0E <uint16> | ||
| [[共通中間言語/stloc|stloc]] index | | [[共通中間言語/stloc|stloc]] index | ||
| | | スタック上の値をインデックス番号indexのローカル変数に取り出す。 | ||
|- | |- | ||
| 0x0A | | 0x0A | ||
| [[共通中間言語/stloc.0|stloc.0]] | | [[共通中間言語/stloc.0|stloc.0]] | ||
| | | スタック上の値をインデックス番号0のローカル変数に取り出す。 | ||
|- | |- | ||
| 0x0B | | 0x0B | ||
| [[共通中間言語/stloc.1|stloc.1]] | | [[共通中間言語/stloc.1|stloc.1]] | ||
| | | スタック上の値をインデックス番号1のローカル変数に取り出す。 | ||
|- | |- | ||
| 0x0C | | 0x0C | ||
| [[共通中間言語/stloc.2|stloc.2]] | | [[共通中間言語/stloc.2|stloc.2]] | ||
| | | スタック上の値をインデックス番号2のローカル変数に取り出す。 | ||
|- | |- | ||
| 0x0D | | 0x0D | ||
| [[共通中間言語/stloc.3|stloc.3]] | | [[共通中間言語/stloc.3|stloc.3]] | ||
| | | スタック上の値をインデックス番号3のローカル変数に取り出す。 | ||
|- | |- | ||
| 0x13 <uint8> | | 0x13 <uint8> | ||
| [[共通中間言語/stloc.s|stloc.s]] index | | [[共通中間言語/stloc.s|stloc.s]] index | ||
| | | スタック上の値をインデックス番号indexのローカル変数に取り出す。indexが0~255以内のとき用。 | ||
|- | |- | ||
| 0x81 <T> | | 0x81 <T> | ||
| 964行目: | 966行目: | ||
== 関連ツール == | == 関連ツール == | ||
* [[monodis]] | * [[ilasm]] - [[Mono]]に付属する[[アセンブラ]] | ||
* [[monodis]] - [[Mono]]に付属する[[逆アセンブラ]] | |||
== 関連項目 == | == 関連項目 == | ||
| 980行目: | 983行目: | ||
== 外部リンク == | == 外部リンク == | ||
[[category: プログラミング言語]] | |||
[[category: .NET]] | |||