5.6.2 レジスタ構成

RX CPUのレジスタには、汎用レジスタ(16本)と、制御レジスタ(9本)、およびDSP機能命令で使用するアキュムレータ(1本)があります。

図 5.2

中央演算処理装置のレジスタ構成

 

(1)

汎用レジスタ(R0〜R15)

汎用レジスタは、16本(R0〜R15)あります。汎用レジスタR0〜R15は、データレジスタやアドレスレジスタとして使用します。

汎用レジスタR0には、汎用レジスタとしての機能に加えて、スタックポインタ(SP)としての機能が割り当てられています。SPは、プロセッサステータスワード(PSW)のスタックポインタ指定ビット(U)によって、割り込みスタックポインタ(ISP)、またはユーザスタックポインタ(USP)に切り替わります。

(2)

割り込みスタックポインタ(ISP)/ユーザスタックポインタ(USP)

スタックポインタ(SP)には、割り込みスタックポインタ(ISP)と、ユーザスタックポインタ(USP)の2種類があります。使用するスタックポインタ(ISP/USP)は、プロセッサステータスワード(PSW)のスタックポインタ指定ビット(U)によって切り替えられます。

ISP、USPに4の倍数を設定すると、スタック操作を伴う命令や、割り込みシーケンスのサイクル数が短くなります。

(3)

割り込みテーブルレジスタ(INTB)

割り込みテーブルレジスタ(INTB)には、可変ベクタテーブルの先頭番地を設定してください。

(4)

プログラムカウンタ(PC)

プログラムカウンタ(PC)は、実行中の命令の番地を示します。

(5)

バックアップPC(BPC)

バックアップPC(BPC)は、割り込み応答を高速化するために設けられたレジスタです。高速割り込みが発生すると、プログラムカウンタ(PC)の内容がBPCに退避されます。

(6)

バックアップPSW(BPSW)

バックアップPSW(BPSW)は、割り込み応答を高速化するために設けられたレジスタです。高速割り込みが発生すると、プロセッサステータスワード(PSW)の内容がBPSWに退避されます。BPSWのビットの割り当ては、PSWに対応しています。

(7)

高速割り込みベクタレジスタ(FINTV)

高速割り込みベクタレジスタ(FINTV)は、割り込み応答を高速化するために設けられたレジスタです。高速割り込み発生時の分岐先番地を設定してください。

(8)

浮動小数点ステータスワード(FPSW)

浮動小数点ステータスワード(FPSW)は、浮動小数点演算結果を示します。浮動小数点命令に対応していない製品では、常に“00000000h”が読め、書き込みは無視されます。

例外処理許可ビット(Ej)で例外処理を許可(Ej=“1”)した場合は、例外処理ルーチンで該当するCjフラグをチェックし、例外発生の要因を判断することができます。例外処理を禁止(Ej=“0”)した場合は、一連の処理の最後にFjフラグをチェックし、例外発生の有無を確認することができます。Fjフラグは蓄積フラグです。(j=X、U、Z、O、V)

(9)

アキュムレータ(ACC)

アキュムレータ(ACC)は、64ビットのレジスタです。DSP機能命令で使用されます。また、ACCは乗算命令(EMUL、EMULU、FMUL、MUL)、積和演算命令(RMPA)でも使用され、これらの命令実行の際はACCの値が変更されます。

ACCへの書き込みには、MVTACHI命令とMVTACLO命令を使用します。MVTACHI命令は上位側32ビット(b63〜b32)に、MVTACLO命令は下位側32ビット(b31〜b0)にデータを書きます。

読み出しには、MVFACHI命令とMVFACMI命令を使用します。MVFACHI命令で上位側32ビット(b63〜b32)、MVFACMI命令で中央の32ビット(b47〜b16)のデータをそれぞれ読みます。