[あすかぜ・ねっと]あすかぜ・ねっとその他CIL Opcode > ldloc

ldloc - load local variable onto the stack

Menu

CIL フォーマット

06 / ldloc.0
07 / ldloc.1
08 / ldloc.2
09 / ldloc.3
11 (uint8) / ldloc.s (indx)
FE 0C (uint16) / ldloc (indx)

JVM フォーマット

15 (uint8) / iload (index)
16 (uint8) / lload (index)
17 (uint8) / fload (index)
18 (uint8) / dload (index)
19 (uint8) / aload (index)
1A1D / iload_(n)
1E21 / lload_(n)
2225 / fload_(n)
2629 / dload_(n)
2A2D / aload_(n)

※Javaではローカル変数と引数リストの区別はない。 ローカル変数は(引数の個数)から順に番号がつく。
※Javaでは型によって命令が異なる。

スタック

... → ..., value

詳細

indx番目のローカル変数をスタックに積みます。 ローカル変数は0から順に番号がついています。 このメソッドの initialize フラグが true であれば、 ローカル変数はメソッドの開始時に 0 に初期化されます。 最初の4つのローカル変数に関しては、 ldloc.0, ldloc.1, ldloc.2, ldloc.3 の利用が効率的です。 4番目から255番目の引数に関しては ldloc.s の利用が効率的です。

valueの型はメソッド・ヘッダで宣言されたローカル変数の型になります。

4バイトより小さいローカル変数はint32に拡張されてスタックにロードされます。 浮動小数点数はネイティブ・サイズ(F)に拡張されます。

Exception

このメソッドの initialize フラグが false であり、 SecurityPermission.SkipVerification権限が与えられていなければ、 「VerificationException」が発生します。


Copyright (C) 2000-2004 asukaze, All Rights Reserved.
Last Update: 2004/10/27
Mail: mail@asukaze.net