ANDxx (かつ)
自由形式構文 | (許可されていない - AND 演算子を使用) |
コード | 演算項目 1 | 演算項目 2 | 結果フィールド | 標識 | ||
---|---|---|---|---|---|---|
ANDxx | 被比較値 | 被比較値 |
この命令は、ANDxx、DOUxx、DOWxx、IFxx、ORxx、 または WHENxx 命令の直後に 続けられなければなりません。ANDxx によって、DOUxx、DOWxx、IFxx、および WHENxx 命令と複合条件を指 定することができます。 ANDxx 命令の方が ORxx 命令よりも優先順位が高くなります。
制御レベル項目 (7 から 8 桁目) はブランクにするか、 あるいは L1 から L9 標識、LR 標識、または L0 項目を入れてプログラムの該当する セクション内のステートメントをグループにまとめることができます。 制御レベルの指定は、対応する DOUxx、DOWxx、IFxx、または WHENxx 命令の制 御レベルの指定と同じでなければなりません。 条件付け標識の指定 (9 から 11 桁目) は使用できません。
演算項目 1 と演算項目 2 には、リテラル、名前のついた定数、形象定数、 テーブル名、配列要素、データ構造名、またはフィールド名を入れなければな りません。 演算項目 1 と 2 は同じタイプでなければなりません。 例えば、 文字フィールドを数値と比較することはできません。 演算項目 1 と 2 の比較は、 比較命令の場合と同じ規則に従って行われます。 比較命令を参照してください。
詳細については、構造化プログラミング命令を参照してください。
図 1. ANDxx 命令
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+....
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
*
* If ACODE is equal to A and indicator 50 is on, the MOVE
* and WRITE operations are processed.
C ACODE IFEQ 'A'
C *IN50 ANDEQ *ON
C MOVE 'A' ACREC
C WRITE RCRSN
* If the previous conditions were not met but ACODE is equal
* to A, indicator 50 is off, and ACREC is equal to D, the
* following MOVE operation is processed.
C ELSE
C ACODE IFEQ 'A'
C *IN50 ANDEQ *OFF
C ACREC ANDEQ 'D'
C MOVE 'A' ACREC
C ENDIF
C ENDIF