1. 概要
2.2 レジスタ構成
汎用レジスタRL(R0L〜R7L)として指定します。これらは同等の機能を持っており、8ビットレジスタを最大 16本使用することができます。各レジスタは使用方法を独立に指定することができます。
・アドレスレジスタ
・32ビットレジスタ ・16ビットレジスタ ・8ビットレジスタ
汎用レジスタER ER0〜ER7
汎用レジスタE
(拡張レジスタ)
E0〜E7
汎用レジスタR R0〜R7
汎用レジスタRH R0H〜R7H
汎用レジスタRL R0L〜R7L
図2.3 汎用レジスタの使用方法
汎用レジスタER7には、汎用レジスタの機能に加えてスタックポインタ(SP)としての機能が割り当てられて おり、例外処理やサブルーチンコールなどで暗黙的に使用されます。スタックポインタとスタック領域の関係を 図2.4に示します。
空領域
スタック領域 SP (ER7)
図2.4 スタックポインタとスタック領域の関係
2.2.2 プログラムカウンタ(PC)
PCは24ビットのカウンタで、CPUが次に実行する命令のアドレスを指します。CPUの命令はすべて偶数番地 から始まる2バイト(ワード)を単位としているため、PCの最下位ビットは命令コードを読み出す時は0とみな されます。PCはリセット例外処理の過程で生成されるベクタアドレスによってスタートアドレスをロードするこ とにより初期化されます。
2.2.3 コンディションコードレジスタ(CCR)
CCRはCPUの内部状態を示します。割り込みマスクビット(I)、ハーフキャリ(H)、ネガティブ(N)、ゼ ロ(Z)、オーバフロー(V)、キャリ(C)の各フラグを含む8ビットで構成されています。Iビットはリセット 例外処理によって1に初期化されますが、他のビットは初期化されません。
ビット ビット名 初期値 R/W 説 明 7 I 1 R/W 割り込みマスクビット
このビットが1にセットされると、割り込み要求がマスクされます。ただし、
NMIはIビットに関係なく受け付けられます。Iビットは例外処理の実行が開 始されたときに1にセットされます。
6 UI 不定 R/W ユーザビット
ソフトウェア(LDC、STC、ANDC、ORC、XORC命令)でリード/ライトで きます。
5 H 不定 R/W ハーフキャリフラグ
ADD.B、ADDX.B、SUB.B、SUBX.B、CMP.B、NEG.B命令の実行により、ビ ット3にキャリまたはボローが生じたとき1にセットされ、生じなかったとき 0にクリアされます。ADD.W、SUB.W、CMP.W、NEG.W命令の実行により ビット11にキャリまたはボローが生じたとき、またはADD.L、SUB.L、CMP.L、
NEG.L命令の実行によりビット27にキャリまたはボローが生じたとき1にセ ットされ、生じなかったとき0にクリアされます
4 U 不定 R/W ユーザビット
ソフトウェア(LDC、STC、ANDC、ORC、XORC命令)でリード/ライトで きます。
3 N 不定 R/W ネガティブフラグ
データの最上位ビットを符号ビットとみなし、最上位ビットの値を格納しま す。
2 Z 不定 R/W ゼロフラグ
データがゼロのとき1にセットされ、ゼロ以外のとき0にクリアされます。
1 V 不定 R/W オーバフローフラグ
算術演算命令の実行によりオーバフローが生じたとき1にセットされます。そ れ以外のとき0にクリアされます。
0 C 不定 R/W キャリフラグ
演算の実行により、キャリが生じたとき1にセットされ、生じなかったとき0 にクリアされます。キャリには次の種類があります。
加算結果のキャリ 減算結果のボロー
シフト/ローテートのキャリ
また、キャリフラグにはビットアキュムレータ機能があり、ビット操作命令で 使用されます。
なお、命令によってはフラグが変化しない場合があります。CCRはLDC、STC、ANDC、ORC、XORC命令で 操作することができます。また、N、Z、V、Cの各フラグは、条件分岐命令(Bcc)で使用されます。各命令ごと のフラグの変化については、「付録A.1 命令一覧」を参照してください。