TXA 命令 (Transfer Index Register X to Accumulator)

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

TXAオーバーロード

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

フラグ変化

n-----z-

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

解説

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

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

転送元転送先ステータスフラグ転送幅注
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とされる

使用例

インデクスで計算する

    TXA             ; インデクスをAに移して計算する
    CLC
    ADC.w #$0010
    TAX

Xが16ビットでAが8ビットのときは下位バイトだけが転送され、Aの上位バイトはそのまま残ります。

参照

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