TSB 命令 (Test and Set Memory Bits)

メモリビットのテストとセットを行います。

TSB オーバーロード

オペコード構文アドレッシングモードバイト数命令サイクル注
04TSB dpDP.251, 2
0CTSB absAbs.361

注

  1. メモリモードフラグクリア時は2サイクル追加
  2. ダイレクトページの開始アドレスがページ境界になっていない場合1サイクル追加

フラグ変化

------z-

z: アキュムレータとメモリの論理積が0の場合にセットされ、それ以外の場合はクリアされる

解説

TSB命令はアキュムレータと指定されたメモリの間での論理和を計算し、その結果をメモリに、アキュムレータとメモリの論理積の結果をステータスフラグに返します。
ビットテストの結果はZフラグを通して検査します。Zフラグがセットされている場合は、ビットテストで一致するビットがなかったことを表します。

使用例

メモリのビットをセットする

    LDA.b #$10
    TSB $20         ; $20 のビット4をセットする(ほかのビットは変わらない)

LDA・ORA・STAの3命令でする処理を1命令でできます。Aの値は変わらないので、同じマスクで続けて操作できます。
ゼロフラグには、セットする前の $20 AND A の結果が入るので、すでにセットされていたかどうかも分かります。

参照

BIT命令
TRB命令