TSB 命令 (Test and Set Memory Bits)
メモリビットのテストとセットを行います。
TSB オーバーロード
| オペコード | 構文 | アドレッシングモード | バイト数 | 命令サイクル | 注 |
|---|---|---|---|---|---|
| 04 | TSB dp | DP. | 2 | 5 | 1, 2 |
| 0C | TSB abs | Abs. | 3 | 6 | 1 |
注
- メモリモードフラグクリア時は2サイクル追加
- ダイレクトページの開始アドレスがページ境界になっていない場合1サイクル追加
フラグ変化
------z-
z: アキュムレータとメモリの論理積が0の場合にセットされ、それ以外の場合はクリアされる
解説
TSB命令はアキュムレータと指定されたメモリの間での論理和を計算し、その結果をメモリに、アキュムレータとメモリの論理積の結果をステータスフラグに返します。
ビットテストの結果はZフラグを通して検査します。Zフラグがセットされている場合は、ビットテストで一致するビットがなかったことを表します。
使用例
メモリのビットをセットする
LDA.b #$10
TSB $20 ; $20 のビット4をセットする(ほかのビットは変わらない)
LDA・ORA・STAの3命令でする処理を1命令でできます。Aの値は変わらないので、同じマスクで続けて操作できます。
ゼロフラグには、セットする前の $20 AND A の結果が入るので、すでにセットされていたかどうかも分かります。