ANDxx (かつ)

自由形式構文 (許可されていない - AND 演算子を使用)
コード 演算項目 1 演算項目 2 結果フィールド 標識
ANDxx 被比較値 被比較値        

この命令は、ANDxxDOUxxDOWxxIFxxORxx、 または 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