TYA 命令 (Transfer Index Register Y to Accumulator)

インデクスレジスタYの値をアキュムレータに転送します。

TYAオーバーロード

オペコード構文アドレッシングモードバイト数命令サイクル注
98TYAImp.12

フラグ変化

n-----z-

n: 転送した値のMSBが格納される。
z: 転送した値が0の場合にセットされ、それ以外の場合はクリアされる。

解説

TYA命令はインデクスレジスタYの値をアキュムレータに転送します。
インデクスレジスタYの値はクリアされず、TYA命令の実行前にアキュムレータに格納されていた値は破棄されます。

レジスタ間転送命令では、ステータスフラグに応じて転送するバイト数が次のように変化します。

転送元転送先ステータスフラグ転送幅注
8ビット アキュムレータ8ビット インデクスレジスタm = 1, x = 18ビット
8ビット アキュムレータ16ビット インデクスレジスタm = 1, x = 016ビット1
16ビット アキュムレータ8ビット インデクスレジスタm = 0, x = 18ビット2
16ビット アキュムレータ16ビット インデクスレジスタm = 0, x = 016ビット
8ビット インデクスレジスタ16ビット アキュムレータm = 0, x = 116ビット3
16ビット インデクスレジスタ8ビット アキュムレータm = 1, x = 08ビット4
16ビット スタックポインタ8ビット インデクスレジスタx = 18ビット5
8ビット インデクスレジスタ16ビット スタックポインタx = 116ビット6

注

  1. アキュムレータの使用されていない上位バイトがインデクスレジスタの上位バイトへ転送される。
  2. アキュムレータの下位バイトのみがインデクスレジスタへ転送される
  3. 16ビットを転送するが、アキュムレータの上位バイトは常に0とされる
  4. インデクスレジスタの下位バイトのみを転送し、アキュムレータの使用されていない上位バイトは変更されない
  5. スタックポインタの下位バイトのみが転送される
  6. 16ビットを転送するが、スタックポインタの上位バイトは常に0とされる

使用例

Yの値を保存する

    TYA
    STA $10         ; Yの値を $10 に保存する

参照

TAX命令
TXA命令
TAY命令
TSX命令
TXS命令
TXY命令
TYX命令
TCD命令
TDC命令
TCS命令
TSC命令
XBA命令