BRK (Software Break)

[ソフトウェアBreak]

65816 ネイティブモードでは、BRK 命令は割り込み禁止フラグに影響されない。 さらに、BRK 命令にシグネチャバイトを追加で入れることができる。 ハードウェアベクタに、新しく BRK ハンドラが追加されている。 IRQ 中に行う BRK フラグのチェックはもはや必要でない。

65816 ネイティブモードの時の BRK の実行内容 :

  • プログラムバンクレジスタ (PBR) がスタックに詰まれる
  • プログラムカウンタ (PC) が 2 インクリメントされ、スタックに詰まれる
  • ステータスレジスタがスタックに詰まれる
  • 割り込み禁止フラグをセット
  • デシマルモードフラグをクリア
  • プログラムバンクレジスタ (PBR) を 0 にクリア
  • プログラムカウンタ (PC) を Break ベクタ ($FFE6-$FFE7) から取得

6502 エミュレーションモードの時は、本物の 6502 のように動作する (B フラグがセットされ、ステータスレジスタがプッシュされ、 SEI と IRQ が実行される)。

コード一覧

アドレッシングモード文法オペコードバイト数命令サイクル
Stack/InterruptBRK002*71

* : BRK は 1 バイトの命令だが、スタックに詰まれる   プログラムカウンタの値は 2 インクリメントされるので、   オプションでシグネチャバイトを入れることができる。 1 : 65816 ネイティブモード (e=0) の時、1 サイクル追加


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-01-03 (土) 23:05:45 (2321d)