大きいとき分岐
形式 (Format) |
バイトサイズ (byte size) |
命令形式 (Assembly Format) |
説明 (Description) |
---|---|---|---|
0x3D<int32> | 5 | bgt tatget | 大きいとき「target」に分岐する。 |
0x30<int8> | 2 | bgt.s target | 大きいとき「target」に分岐する。上の短い形式。 |
..., value1, value2 -> ...,
bgt命令は、value1がvalue2より大きい場合にtargetにコントロールを移します。この動作は、cgt命令に続いて「brtrue taget」を行なうことと同一です。targetは符号付きオフセット(bgt命令で4バイト、bgt.s命令で1バイト)として命令の始まりから表されます。
受理可能なオペランド型は表4:バイナリ比較と分岐命令を参照してください。
目標命令に1つ以上のプリフィックスコードがあるなら、コントロールをこれらのプリフィックスの一つ目にだけしか移すことができません。
この命令ではtry、chatch、filter、finallyブロックからコントロールを移すことが出来ません。 (そのような分岐は、厳しく制限されて、代わりにleave命令を使用しなければなりません。詳細は次にあります。 Partition I 【まだ翻訳していないので、英語のページへ飛びます】)
この命令は、次の命令を「オフセット0」と考えます。そのことに注意してオフセットを指定してください。
無し
正しいCILは、コントロールのすべて移り変わりが上で指定された規則を満たさなければなりません。また、スタック上のトップ2つのアイテムが表4:バイナリ比較と分岐命令で、比較できることを保証しなければなりません。
さらに、安全なコードは目的地指示にあらゆる可能な経路のためのスタック、ローカル変数、および引数の型一貫性を必要とします。 詳細は次にあります。 CIL 命令セット(CIL Instruction Set)-オペランド型表。