RTI 命令 (Return from Interrupt)

割り込みから復帰し、中断していた処理を再開します。

RTIオーバーロード

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

注\

  1. ネイティブモード時は1サイクル追加

フラグ変化

nvmxdizc

ステータスフラグはすべて変更されうる。割込処理の開始前のステータスフラグを再現する。

解説

RTI命令は、ハードウェア割り込みまたはソフトウェア割り込みの処理を終了し、割込発生前に行っていた処理を再開します。
RTI命令が実行する処理の内容はネイティブモード時とエミュレーションモード時で異なります。したがって、ソフトウェア割り込みの開始前および終了後でエミュレーションフラグの状態が一致していなければなりません。

・ネイティブモード

  1. ステータスレジスタをポップします
  2. プログラムカウンタをポップします
  3. プログラムバンクレジスタをポップします

・エミュレーションモード時

  1. ステータスレジスタをポップします
  2. プログラムカウンタをポップします

使用例

割込処理ルーチンの終わり

NMI:
    REP #$30
    PHA
    PHX
    PHY
    ; ... 割り込みの処理 ...
    REP #$30        ; 積んだときと同じ幅で戻す
    PLY
    PLX
    PLA
    RTI             ; ステータスレジスタも戻るので、レジスタの幅は割込前に戻る

詳しくは割り込みを参照してください。

参照

BRK命令
COP命令
WAI命令
SEI命令
CLI命令