DEX 命令 (Decrement Index Register X)

インデクスレジスタXの値をデクリメントします。

DEXオーバーロード

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

フラグ変化

n-----z-

n: デクリメントした結果のMSBがセットされる
z: デクリメントした結果が0の場合にセットされる

使用例

カウントダウンするループ

比較命令を使わずに済むので、カウントアップより短く書けます。

    ; $7E:2000~$7E:201F を$FFで埋める(Aは8ビット、Xは16ビット)
    LDA.b #$FF
    LDX.w #$001F
.loop
    STA.l $7E2000,X
    DEX
    BPL .loop       ; Xが負($FFFF)になるまで繰り返す

BPL命令で終了を判定する方法は、Xの初期値が$7FFF以下(8ビットモードでは$7F以下)の場合にだけ使えます。それより大きい場合は、BNEで0になるまで回し、0番目は別に処理します。

参照

DEC命令
DEY命令
INC命令
INX命令
INY命令