TYA 命令 (Transfer Index Register Y to Accumulator)
インデクスレジスタYの値をアキュムレータに転送します。
TYAオーバーロード
| オペコード | 構文 | アドレッシングモード | バイト数 | 命令サイクル | 注 |
|---|---|---|---|---|---|
| 98 | TYA | Imp. | 1 | 2 |
フラグ変化
n-----z-
n: 転送した値のMSBが格納される。
z: 転送した値が0の場合にセットされ、それ以外の場合はクリアされる。
解説
TYA命令はインデクスレジスタYの値をアキュムレータに転送します。
インデクスレジスタYの値はクリアされず、TYA命令の実行前にアキュムレータに格納されていた値は破棄されます。
レジスタ間転送命令では、ステータスフラグに応じて転送するバイト数が次のように変化します。
| 転送元 | 転送先 | ステータスフラグ | 転送幅 | 注 |
|---|---|---|---|---|
| 8ビット アキュムレータ | 8ビット インデクスレジスタ | m = 1, x = 1 | 8ビット | |
| 8ビット アキュムレータ | 16ビット インデクスレジスタ | m = 1, x = 0 | 16ビット | 1 |
| 16ビット アキュムレータ | 8ビット インデクスレジスタ | m = 0, x = 1 | 8ビット | 2 |
| 16ビット アキュムレータ | 16ビット インデクスレジスタ | m = 0, x = 0 | 16ビット | |
| 8ビット インデクスレジスタ | 16ビット アキュムレータ | m = 0, x = 1 | 16ビット | 3 |
| 16ビット インデクスレジスタ | 8ビット アキュムレータ | m = 1, x = 0 | 8ビット | 4 |
| 16ビット スタックポインタ | 8ビット インデクスレジスタ | x = 1 | 8ビット | 5 |
| 8ビット インデクスレジスタ | 16ビット スタックポインタ | x = 1 | 16ビット | 6 |
注
- アキュムレータの使用されていない上位バイトがインデクスレジスタの上位バイトへ転送される。
- アキュムレータの下位バイトのみがインデクスレジスタへ転送される
- 16ビットを転送するが、アキュムレータの上位バイトは常に0とされる
- インデクスレジスタの下位バイトのみを転送し、アキュムレータの使用されていない上位バイトは変更されない
- スタックポインタの下位バイトのみが転送される
- 16ビットを転送するが、スタックポインタの上位バイトは常に0とされる
使用例
Yの値を保存する
TYA
STA $10 ; Yの値を $10 に保存する
参照
TAX命令
TXA命令
TAY命令
TSX命令
TXS命令
TXY命令
TYX命令
TCD命令
TDC命令
TCS命令
TSC命令
XBA命令