TXS 命令 (Transfer Index Register X to Stack Pointer)

インデクスレジスタXの値をスタックポインタに転送します。

TXSオーバーロード

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

フラグ変化

--------

この命令はステータスフラグを変更しません。

解説

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

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

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

使用例

スタックポインタを初期化する

    REP #$10
    LDX.w #$1FFF
    TXS             ; スタックポインタ = $1FFF

エミュレーションモードでは、スタックポインタの上位バイトは常に$01になります。

参照

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