CPU > 命令セット > BRK

「CPU/命令セット/BRK」の編集履歴(バックアップ)一覧に戻る

CPU/命令セット/BRK - (2017/02/20 (月) 17:30:56) のソース

***BRK (Software Break) [#oc68093b]
[ソフトウェアBreak]

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

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

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

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



''コード一覧''
|アドレッシングモード|文法|オペコード|バイト数|命令サイクル|注|h
|Stack/Interrupt|BRK|00|2*|7 | 1|

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