RTI 命令 (Return from Interrupt)
割り込みから復帰し、中断していた処理を再開します。
RTIオーバーロード
| オペコード | 構文 | アドレッシングモード | バイト数 | 命令サイクル | 注 |
|---|---|---|---|---|---|
| 40 | RTI | Stack | 1 | 6 | 1 |
注\
- ネイティブモード時は1サイクル追加
フラグ変化
nvmxdizc
ステータスフラグはすべて変更されうる。割込処理の開始前のステータスフラグを再現する。
解説
RTI命令は、ハードウェア割り込みまたはソフトウェア割り込みの処理を終了し、割込発生前に行っていた処理を再開します。
RTI命令が実行する処理の内容はネイティブモード時とエミュレーションモード時で異なります。したがって、ソフトウェア割り込みの開始前および終了後でエミュレーションフラグの状態が一致していなければなりません。
・ネイティブモード
- ステータスレジスタをポップします
- プログラムカウンタをポップします
- プログラムバンクレジスタをポップします
・エミュレーションモード時
- ステータスレジスタをポップします
- プログラムカウンタをポップします
使用例
割込処理ルーチンの終わり
NMI:
REP #$30
PHA
PHX
PHY
; ... 割り込みの処理 ...
REP #$30 ; 積んだときと同じ幅で戻す
PLY
PLX
PLA
RTI ; ステータスレジスタも戻るので、レジスタの幅は割込前に戻る
詳しくは割り込みを参照してください。