トップページ > プログラム > 2014年07月08日 > lqCYhNdm

書き込み順位&時間帯一覧

29 位/202 ID中時間01234567891011121314151617181920212223Total
書き込み数0000001000000000000000203



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【JavaScript】スクリプト バトルロワイヤル44【pl,rb,php,py】

書き込みレス一覧

【JavaScript】スクリプト バトルロワイヤル44【pl,rb,php,py】
453 :デフォルトの名無しさん[]:2014/07/08(火) 06:49:38.69 ID:lqCYhNdm
CIL 命令セット


http://mog.xenowire.net/index.php?CIL%28MSIL%29%A5%E1%A5%E2%A5%D0%A5%C3%A5%AF%A5%A2%A5%C3%A5%D7
http://www.atelier-blue.com/program/il/command/index.htm
http://www.atelier-blue.com/program/il/ecma-335/p-3/index.htm
【JavaScript】スクリプト バトルロワイヤル44【pl,rb,php,py】
473 :デフォルトの名無しさん[]:2014/07/08(火) 22:33:26.78 ID:lqCYhNdm
.N
【JavaScript】スクリプト バトルロワイヤル44【pl,rb,php,py】
474 :デフォルトの名無しさん[]:2014/07/08(火) 22:43:14.19 ID:lqCYhNdm
IL 命令の実行例 (.NET Framework)
.NETの仮想マシンは、スタック型と呼ばれるタイプの構造をしています。スタック型の命令は、コンパイラー作りの基本だったりします。
.NET の IL 命令は、実 CPU の命令セットと比べるとシンプルで読みやすく、 コンパイラーというものの勉強がてらに眺めてみるのもいいのではないかと思います。
ここでは、サンプル コードを示しつつ、それが実際どういう手順で実行されているかを説明します。
例: 2 * (x + y) 以下のような IL が得られます。
.method private hidebysig static int32 X(int32 x, int32 y) cil managed
{
.maxstack 8
IL_0000: ldc.i4.2
IL_0001: ldarg.0
IL_0002: ldarg.1
IL_0003: add
IL_0004: mul
IL_0005: ret
}
この例で出てきた IL 命令を簡単に説明すると、表1のようになります。
IL アセンブリ命令 IL マシン語(16進数) 説明
ldc.i4.2 18 int 型の定数 2 をスタックに読み込む(load constant integer(4byte) 2)。
ldarg.0 02 最初の引数の値をスタックに読み込む(load argument 0)。
ldarg.1 03 2つ目の引数の値をスタックに読み込む(load argument 1)。
add 58 加算。スタック上の2つの値を消費して、加算結果をスタックの最上位に積む。
mul 5A 乗算(multiply)。スタック上の2つの値を消費して、乗算結果をスタックの最上位に積む。
ret 2A メソッド呼び出し元に戻る(return)。
この IL 命令列がどう実行されていくか、スタックの状態も含めて図示していきましょう。 たとえば、引数として、x = 1, y = 3 を与えたとすると、以下のようになります。
http://ufcpp.net/study/dotnet/fig/il-sample1-1.png
http://ufcpp.net/study/dotnet/fig/il-sample1-2.png
http://ufcpp.net/study/dotnet/fig/il-sample1-3.png
http://ufcpp.net/study/dotnet/fig/il-sample1-4.png
http://ufcpp.net/study/dotnet/fig/il-sample1-5.png
http://ufcpp.net/study/dotnet/fig/il-sample1-6.png
http://ufcpp.net/study/dotnet/il_execution.html


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。