自由形式構文 | (許可されていない - LEAVE、ITER、 および RETURN などの他の命令コードを使用) |
コード | 演算項目 1 | 演算項目 2 | 結果フィールド | 標識 | ||
---|---|---|---|---|---|---|
CABxx | 被比較値 | 被比較値 | ラベル | HI | LO | EQ |
CABxx 命令は、演算項目 1 を演算項目 2 と比較します。 xx に よって指定された条件が真の場合には、プログラムは、結果フィールドに指 定されたラベルに対応する TAG または ENDSR 命令に分岐します。 そうでない場合には、プログラムは次の命令から順番に続行します。結果フィールドが指定されていない場合には、それに応じて結果の 標識 (71-76 桁目) が設定され、 プログラムは次の命令から順番に続行します。
条件付け標識を指定することができます。 演算項目 1 と演算項目 2 には、リテラル、名前のついた定数、形象定数、 テーブル名、配列要素、データ構造名、またはフィールド名を入れなければな りません。 演算項目 1 と 2 は同じタイプでなければなりません。 結果フィールドに指定されたラベルは固有の TAG 命令と関連付けられていなけ ればならず、また固有の記号名でなければなりません。
メイン・プロシージャーの CABxx 命令では次の分岐を指定することができます。
サブプロシージャーの CABxx 命令では次の分岐を指定することができます。
CABxx 命令では、サブルーチンの外からそのサブルーチン内の TAG または ENDSR 命令への分岐を指定することはできません。
論理内の一部から別の部分へ分岐すると、無限ループに入ることがあります。 プログラムまたはプロシージャーの論理によって好ましくない結果が起こるこ とのないようにしてください。
結果の標識は任意指定です。 指定すると、比較操作の結果を反映するように設定されます。 例えば、F1>F2 の場合には HI 標識が設定され、F1<F2 の場合 には LO、F1=F2 の場合には EQ が設定されます。
演算項目 1 と演算項目 2 を比較する場合の規則については、比較命令を参照してください。
詳細については、分岐命令を参照してください。
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+.... CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq.... * * The field values are: * FieldA = 100.00 * FieldB = 105.00 * FieldC = ABC * FieldD = ABCDE * * Branch to TAGX. C FieldA CABLT FieldB TAGX * * Branch to TAGX. C FieldA CABLE FieldB TAGX * * Branch to TAGX; indicator 16 is off. C FieldA CABLE FieldB TAGX 16 * * Branch to TAGX; indicator 17 is off, indicator 18 is on. C FieldA CAB FieldB TAGX 1718 * * Branch to TAGX; indicator 19 is on. C FieldA CAB FieldA TAGX 19 * * No branch occurs. C FieldA CABEQ FieldB TAGX * * No branch occurs; indicator 20 is on. C FieldA CABEQ FieldB TAGX 20 * * No branch occurs; indicator 21 is off. C FieldC CABEQ FieldD TAGX 21 C : C TAGX TAG
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.