TXA 命令 (Transfer Index Register X to Accumulator)
インデクスレジスタXの値をアキュムレータに転送します。

TXAオーバーロード
オペコード 構文 アドレッシングモード バイト数 命令サイクル
8A
TXA
Imp.
1
2

フラグ変化
n-----z-

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

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

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

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

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