BITOFF (ビットをオフに設定)

自由形式構文 (許可されていない - %BITAND および %BITNOT 組み込み関数を使用。 図 3 を参照。)
コード 演算項目 1 演算項目 2 結果フィールド 標識
BITOFF   ビット番号 文字フィールド      

BITOFF 命令では、演算項目 2 で識別されたビットが結果フィールドでオ フに設定 (0 に設定) されます。 演算項目 2 で識別されないビットは変わりま せん。したがって、BITOFF を使用して文字を形式設定する場合には、BITON と BITOFF の両方を使用しなければなりません。ビットをオン (=1) に設定する ように指定するためには BITON、ビットをオフ (=0) に設定するように指定 するためには BITOFF を使用します。 文字のすべてのビットをオンまたはオフに明示的に設定しない限り、希望す る文字を取り出すことはできません。

文字フィールドに特定のビット・パターンを割り当てたい場合には、演算項目 2 に 16 進数リテラルを指定して MOVE (転送)命令を使用します。

演算項目 2 には以下のものを入れることができます。
  • ビット番号 0 から 7: 1 つの命令で 1-8 ビットをオフに 設定することができます。 これらは 0 から 7 の番号で識別されます (0 が左端 ビットです)。 ビット番号をアポストロフィで囲みます。 例えば、ビット 0、2、および 5 をオフに設定するためには、 演算項目 2 に ‘025’ と指定します。
  • フィールド名: 演算項目 2 に、1 桁の 文字フィールドの名前、テーブル要素、または配列要素を指定することができます。 このフィールド、テーブル要素、または配列要素でオンのビットは 結果フィールドでオフに設定されます。 オフのビットは結果に影響を与えません。
  • 16 進数リテラルまたは名前のついた定数: 1 バイトの 16 進数リテラルまたは 16 進数の名前のついた定数を指定する ことができます。 演算項目 2 のオンのビットは結果フィールドでオフに設定され、オフのビ ットは影響を受けません。
  • 名前のついた定数: オフに設定するビット番号 が入った 8 桁までの長さの文字の名前のついた定数。

結果フィールドには、1 桁の文字フィールドを指定します。 配列のそれぞれの要素が 1 桁の文字フィールドの場合には、配列要素にするこ とができます。

詳細については、ビット操作を参照してください。

図 1. BITOFF の例
 *    Set off bits 0,4,6 in  FieldG.  Leave bits 1,2,3,5,7 unchanged.
 *    Setting off bit 0, which is already off, results in bit 0 remaining off.
 *       Factor 2 = 10001010
 *       FieldG   = 01001111  (before)
 *       FieldG   = 01000101  (after)
C                   BITOFF    '046'         FieldG
 *    Set off bits 0,2,4,6 in FieldI.  Leave bits 1,3,5,7 unchanged.
 *    Setting off bit 2, which is already off, results in bit 2 remaining off.
 *       Factor 2 = 10101010
 *       FieldI   = 11001110  (before)
 *       FieldI   = 01000100  (after)
C                   BITOFF    BITNC         FieldI
 *    HEXNC is equivalent to literal '4567', bit pattern 00001111.
 *    Set off bits 4,5,6,7 in  FieldK.  Leave bits 0,1,2,3 unchanged.
 *       Factor 2 = 11110000
 *       FieldK   = 10000000  (before)
 *       FieldK   = 00000000  (after)
C                   BITOFF    HEXNC2        FieldK
C                   RETURN