| ldloc | : | load local variable the stack - ローカル変数をpush |
| ldloca | : | load local variable address - ローカル変数のアドレスをpush |
| stloc | : | pop value from stack to local variable - popしてローカル変数に格納 |
| ldfld | : | load field of an object - クラスのメンバ変数をpush |
| ldflda? | : | load field address - クラスのメンバ変数のアドレスをpush |
| stfld | : | store into a field of an object - popしてクラスのメンバ変数に格納 |
| ldsfld | : | load static field of a class - クラスの静的メンバ変数をpush |
| ldsflda | : | load static field address - クラスの静的メンバ変数のアドレスをpush |
| stsfld | : | store a static field of a class - popしてクラスの静的メンバ変数に格納 |
| | |
| 配列 | | |
| newarr | : | create a zero-based、one-dimensional array - 1次元配列を作成しpush |
| ldlen? | : | load the length of an array - popした配列の長さをpush |
| ldelema? | : | load address of an element of an array - 配列の要素のアドレスをpush |
| ldelem | : | load an element of an array - 配列の要素をpush |
| stelem | : | store an element of an array - popして配列の要素に格納 |
| | |
| 定数 | | |
| ldnull? | : | load a null pointer - ヌルポインタをpush(ガッガッ |
| ldc | : | load numeric constant - 定数をpush |
| ldstr | : | load literal string - 文字列をpush |
| | |
| スタック操作 | | |
| dup? | : | duplicate the top value of stack - スタックの先頭の要素を複製してpush |
| pop? | : | remove the top element of the stack - スタックの先頭の要素を削除 |
| ldind? | : | load value indirect onto the stack - |
| stind? | : | store value indirect from stack - |
| | |
| 関数 | | |
| call | : | call a method - 関数の呼び出し |
| callli | : | indirect method call - 関数ポインタの呼び出し |
| callvirt? | : | call a method associated、at runtime、with an object - 遅延バインディングを使用した関数の呼び出し |
| ret | : | return from method - |
| ldftn | : | load method pointer - 関数ポインタをpush |
| ldvirtftn? | : | load a virtual method pointer - |
| jmp | : | jump to method - 関数にジャンプ(retしても戻らない) |
| jmpi | : | jump via method pointer - 関数ポインタにジャンプ(retしても戻らない) |
| | |
| 関数の引数 | | |
| ldarg | : | load argument onto the stack - 引数をpush |
| ldarga? | : | load an argument address - 引数のアドレスをpush |
| starg? | : | store a value in an argument slot - popして引数に格納 |
| arglist? | : | get argument list - |
| | |
| 分岐 | | |
| br | : | unconditional branch - 無条件分岐 |
| brfalse | : | branch on false、null、or zero - false(0)またはnullの場合に分岐 |
| brtrue | : | branch on non-false or non-null - false(0)またはnull以外の場合に分岐 |
| beq? | : | branch on equal - == 等しい場合に分岐(2回popしてその値を比較し等しかったら分岐) |
| bge? | : | branch on greater then or equal to - >= |
| bgt? | : | > |
| ble? | : | =< |
| blt? | : | < |
| bne? | : | != |
| switch | : | table switch on value - popした値によって指定したラベルに分岐。 |
| | |
| 数値演算 | | |
| add? | : | + (2回popしてそれらを足しその結果をpush) |
| sub? | : | - |
| mul? | : | * |
| div? | : | / |
| rem? | : | compute remainder - %(mod) 余りを計算。 |
| neg? | : | negate - 符号の反転 |
| | |
| 比較演算 | | |
| ceq? | : | compare equal - (2回popして等しいかどうか判断し結果をpush) |
| cgt? | : | compare greater than - |
| clt? | : | compare less than - |
| ckfinite? | : | check for a finite real number - 有限の実数であるかどうか調べる |
| | |
| 論理演算 | | |
| and? | : | & |
| or? | : | | |
| xor? | : | xor |
| not? | : | not - ! |
| shl? | : | shift integer left - << |
| shr? | : | shift integer right - >> |
| | |
| オブジェクト操作 | | |
| conv? | : | data conversion - データの変換 |
| cpobj? | : | copy a value type - |
| initobj? | : | initialize a value type - |
| ldobj? | : | copy value type to the stack - |
| stobj? | : | store a value type from the stack into memory |
| newobj | : | create a new object - オブジェクトの生成 |
| castclass? | : | cast an object to a class - オブジェクトのクラスへのキャスト |
| isinst? | : | test if an object is an instance of a class or interface、returning NULL or an instance of that class or interface |
| | popしたオブジェクトがクラスまたはインターフェイスのインスタンスかどうか調べる。 |
| box? | : | convert value type to object reference - box化(型をオブジェクト参照に変換) |
| unbox? | : | Convert boxed value type to its raw form - box化を解除 |
| | |
| エラー処理 | | |
| throw? | : | throw an exception - 例外をthrow |
| rethrow? | : | rethrow the current exception - |
| endfinally | : | end finally clause of an exception block - .tryのfinally節から抜ける |
| leave | : | exit a protected region of code - |
| | |
| メモリ操作 | | |
| cpblk | : | copy data from memory to memory - メモリブロック間のデータコピー(memcpy?) |
| initblk? | : | initialize a block of memory to a value - メモリブロックの初期化(memset?) |
| sizeof | : | load the size in bytes of a value type - (sizeof?) |
| localloc? | : | allocate space in the local dynamic memory pool - (malloc?) |
| | |
| 未分類 | | |
| nop | : | no operation - 何もしない。 |
| break? | : | breakpoint instruction - ブレークポイントの設定 |
| ann? | : | Annotations |
| ldtoken? | : | load the runtime representation of a metadata token - |
| endfilter? | : | end filter clause of SEH - |
| unaligned? | : | subsequent pointer instruction may be unaligned - |
| volatile? | : | subsequent pointer reference is volatile - |
| tail? | : | subsequent call terminates current method - |
| refanyval? | : | load the address out of a typed reference - |
| refanytype? | : | load the type out of a typed reference - |
| mkrefany? | : | push a typed reference on the stack - |