3-2 プログラムカウンタ(PC) |
プログラムカウンタ(PC)は16ビットで構成されており、次に実行すべき命令が格納されているプログラムメモリ(ROM)のアドレスを保持し、CPUはPCの値を基に一連のプログラムを実行します。通常、PCは1命令ごとにインクリメントされ、分岐命令、サブルーチン命令の実行時、割り込み受け付け時やリセット時には、各動作に応じた値がPCに設定されます。
各動作におけるPCの設定値は、次の表のとおりです。
| 動作の種類 | プログラムカウンタの値 | |
| リセット | 0000H(内部プログラム空間) | |
| 外部割り込み0 | 0003H | |
| 外部割り込み1 | 000BH | |
| 外部割り込み2,タイマー/カウンタT0L割り込み | 0013H | |
| 外部割り込み3,ベースタイマー割り込み | 001BH | |
| タイマー/カウンタT0H割り込み | 0023H | |
| タイマーT1L,タイマーT1H割り込み | 002BH | |
| SI00割り込み | 0033H | |
| SI01割り込み | 0033H | |
| ビジュアルメモリ用SI0割り込み | 0043H | |
| ポート3割り込み | 004BH | |
| 無条件分岐命令 | JMP a12 | PC15〜12=カレントページ PC11〜00=a12 |
| JMPF a16 | C15〜00=a16 | |
| BR r16 | (PC+2) + r8 [-128〜+127] | |
| BRF r16 | (PC+2) + r16 [0〜+65535] | |
| 条件分岐命令 | BZ,BNZ,BP,BNE BPC,BN,DBNZ,BE |
(PC+2または+3) +r8 [-128〜+127] |
| CALL命令 | CALL a12 | C15〜12=カレントページ PC11〜00=a12 |
| CALLF r16 | PC15〜00=a16 | |
| CALLR 16 | (PC+2) + r16 [0〜+65535] | |
| マクロ命令 | CHANGEラベル名 (or アドレス) |
別プログラムモードのラベル またはアドレスで指定された値 |
|
便宜上、4KバイトごとのROM空間を「ページ」といいます。 「カレントページ」とは、ROM空間において現在実行中の次の命令に続いて記述されている命令が含まれるページのことをいいます。 ROMのプログラム動作実行中に割り込みが発生した場合は、ROM内部の割り込みベクトル(先の表のアドレス)がCALLされます。フラッシュメモリのアプリケーション実行中に割り込みが発生した場合には、フラッシュメモリのバンク0の割り込みベクトル(表のアドレス)がCALLされます。 アプリケーションでは、一部の割込ベクトルを任意に設定することはできません。必ず指定されたプログラムを組み込む必要があります。詳しくは「5.1 割り込み機能」を参照してください |
| [←] | [INDEX] | [→] |
(C)SEGA ENTERPRISES, LTD., 1999