自由形式構文 | (許可されていない - %BITOR 組み込み関数を使用。 図 175 を参照。) |
コード | 演算項目 1 | 演算項目 2 | 結果フィールド | 標識 | ||
---|---|---|---|---|---|---|
BITON | ビット番号 | 文字フィールド |
BITON 命令では、演算項目 2 で識別されたビットが結果フィールドでオンに 設定 (1 に設定) されます。 演算項目 2 で識別されないビットは変わりま せん。したがって、BITON を使用して文字を形式設定する場合には、BITON と BITOFF の両方を使用しなければなりません。ビットをオン (=1) に設定する ように指定するためには BITON、ビットをオフ (=0) に設定するように指定 するためには BITOFF を使用します。 文字のすべてのビットをオンまたはオフに明示的に設定しない限り、希望す る文字を取り出すことはできません。
文字フィールドに特定のビット・パターンを割り当てたい場合には、演算項目 2 に 16 進数リテラルを指定して MOVE (転送)命令を使用します。
演算項目 2 には以下のものを入れることができます。
結果フィールドには、1 桁の文字フィールドを指定します。 配列のそれぞれの要素が 1 桁の文字フィールドの場合には、配列要素にするこ とができます。
詳細については、ビット操作を参照してください。
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++ D FieldA S 1A INZ(X'00') D FieldB S 1A INZ(X'00') D FieldC S 1A INZ(X'FF') D FieldD S 1A INZ(X'C0') D FieldE S 1A INZ(X'C0') D FieldF S 1A INZ(X'81') D FieldG S 1A INZ(X'4F') D FieldH S 1A INZ(X'08') D FieldI S 1A INZ(X'CE') D FieldJ S 1A INZ(X'80') D FieldK S 1A INZ(X'80') D BITNC C CONST('0246') D HEXNC C CONST(X'0F') D HEXNC2 C CONST(X'F0') C*0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq.... * * Set on bits 0,4,5,6,7 in FieldA. Leave bits 1,2,3 unchanged. * Factor 2 = 10001111 * FieldA = 00000000 (before) * FieldA = 10001111 (after) C BITON '04567' FieldA * Set on bit 3 in FieldB. Leave bits 0,1,2,4,5,6,7 unchanged. * Factor 2 = 00010000 * FieldB = 00000000 (before) * FieldB = 00010000 (after) C BITON '3' FieldB * Set on bit 3 in FieldC. Leave bits 0,1,2,4,5,6,7 unchanged. * Setting on bit 3, which is already on, results in bit 3 remaining on. * Factor 2 = 00010000 * FieldC = 11111111 (before) * FieldC = 11111111 (after) C BITON '3' FieldC * Set on bit 3 in FieldD. Leave bits 0,1,2,4,5,6,7 unchanged. * Factor 2 = 00010000 * FieldD = 11000000 (before) * FieldD = 11010000 (after) C BITON '3' FieldD * Set on bits 0 and 1 in FieldF. Leave bits 2,3,4,5,6,7 unchanged. * (Setting on bit 0, which is already on, results in bit 0 remaining on.) * Factor 2 = 11000000 * FieldF = 10000001 (before) * FieldF = 11000001 (after) C BITON FieldE FieldF * X'C1' is equivalent to literal '017', bit pattern 11000001. * Set on bits 0,1,7 in FieldH. Leave bits 2,3,4,5,6 unchanged. * Factor 2 = 11000001 * FieldH = 00001000 (before) * FieldH = 11001001 (after) C BITON X'C1' FieldH * HEXNC is equivalent to literal '4567', bit pattern 00001111. * Set on bits 4,5,6,7 in FieldJ. Leave bits 0,1,2,3 unchanged. * Factor 2 = 00001111 * FieldJ = 10000000 (before) * FieldJ = 10001111 (after) C BITON HEXNC FieldJ C RETURN
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.