### 3-2　プログラムカウンタ（PC）

プログラムカウンタ（PC）は16ビットで構成されており、次に実行すべき命令が格納されているプログラムメモリ（ROM）のアドレスを保持し、CPUはPCの値を基に一連のプログラムを実行します。通常、PCは1命令ごとにインクリメントされ、分岐命令、サブルーチン命令の実行時、割り込み受け付け時やリセット時には、各動作に応じた値がPCに設定されます。

各動作におけるPCの設定値は、次の表のとおりです。

▽ プログラムカウンタ設定値(表3)

動作の種類 | プログラムカウンタの値
リセット | 0000H（内部プログラム空間）
外部割り込み0 | 0003H
外部割り込み1 | 000BH
外部割り込み2，タイマー／カウンタT0L割り込み | 0013H
外部割り込み３，ベースタイマー割り込み | 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] | [→]