CIL フォーマット
15 / ldc.i4.m1
16〜1E / ldc.i4.(0〜8)
1F (int8) / ldc.i4.s (num)
20 (int32) / ldc.i4 (num)
21 (int64) / ldc.i8 (num)
22 (float32) / ldc.r4 (num)
23 (float64) / ldc.r8 (num)
JVM フォーマット
02 / iconst_m1
03〜08 / iconst_(0〜5)
09〜0A / lconst_(0〜1)
0B〜0D / fconst_(0〜2)
0E〜0F / dconst_(0〜1)
10 (byte) / bipush (num)
11 (byte*2) / sipush (num)
12 (uint8) / ldc (index)
13 (uint8) / ldc_w (index)
14 (uint8) / ldc2_w (index)
※Javaでの ldc, ldc_w, ldc2_w 命令は、 ランタイム・コンスタント・プールからスタックにコピーを行う。
スタック
... → ..., num
詳細
スタックに定数を追加します。 -1 から 8 までに関しては ldc.i4.m1, ... ,ldc.i4.8 を、 -128 から 127 までの整数には ldc.i4.s を利用できます。 これらの短縮表記を利用した場合、スタックには4バイト整数として積まれます。
8バイト整数の定数をスタックに積むには、以下の3通りの方法が考えられます。