RX CPUのレジスタには、汎用レジスタ(16本)と、制御レジスタ(10本)、およびDSP機能命令で使用するアキュムレータ(2本)があります。
汎用レジスタは、16本(R0〜R15)あります。汎用レジスタR0〜R15は、データレジスタやアドレスレジスタとして使用します。
汎用レジスタR0には、汎用レジスタとしての機能に加えて、スタックポインタ(SP)としての機能が割り当てられています。SPは、プロセッサステータスワード(PSW)のスタックポインタ指定ビット(U)によって、割り込みスタックポインタ(ISP)、またはユーザスタックポインタ(USP)に切り替わります。
スタックポインタ(SP)には、割り込みスタックポインタ(ISP)と、ユーザスタックポインタ(USP)の2種類があります。使用するスタックポインタ(ISP/USP)は、プロセッサステータスワード(PSW)のスタックポインタ指定ビット(U)によって切り替えられます。
ISP、USPに4の倍数を設定すると、スタック操作を伴う命令や、割り込みシーケンスのサイクル数が短くなります。
割り込みテーブルレジスタ(INTB)には、可変ベクタテーブルの先頭番地を設定してください。
プログラムカウンタ(PC)は、実行中の命令の番地を示します。
バックアップPC(BPC)は、割り込み応答を高速化するために設けられたレジスタです。高速割り込みが発生すると、プログラムカウンタ(PC)の内容がBPCに退避されます。
バックアップPSW(BPSW)は、割り込み応答を高速化するために設けられたレジスタです。高速割り込みが発生すると、プロセッサステータスワード(PSW)の内容がBPSWに退避されます。BPSWのビットの割り当ては、PSWに対応しています。
高速割り込みベクタレジスタ(FINTV)は、割り込み応答を高速化するために設けられたレジスタです。高速割り込み発生時の分岐先番地を設定してください。
浮動小数点ステータスワード(FPSW)は、浮動小数点演算結果を示します。浮動小数点命令に対応していない製品では、常に“00000000h”が読め、書き込みは無視されます。
例外処理許可ビット(Ej)で例外処理を許可(Ej=“1”)した場合は、例外処理ルーチンで該当するCjフラグをチェックし、例外発生の要因を判断することができます。例外処理を禁止(Ej=“0”)した場合は、一連の処理の最後にFjフラグをチェックし、例外発生の有無を確認することができます。Fjフラグは蓄積フラグです。(j=X、U、Z、O、V)
例外テーブルレジスタ(EXTB)には、例外ベクタテーブルの先頭番地を設定してください。
アキュムレータ(ACC0,ACC1)は、72ビットのレジスタです。DSP機能命令で使用されます。アキュムレータは、読み出し時や書き込み時は96ビットのレジスタとして扱われます。このとき、アキュムレータのb95〜b72の扱いは、読み出し時にb71の値を符号拡張し、書き込み時には無視します。また、ACC0は乗算命令(EMUL、EMULU、FMUL、MUL)、積和演算命令(RMPA)でも使用され、これらの命令実行の際はACC0の値が変更されます。
ACC0,ACC1への書き込みには、MVTACGU命令、MVTACHI命令及びMVTACLO命令を使用します。MVTACGU命令はb95〜b64に、MVTACHI命令はb63〜b32に、MVTACLO命令はb31〜b0にデータを書きます。
読み出しには、MVFACGU命令、MVFACHI命令、MVFACMI命令及びMVFACLO命令を使用します。MVFACGU命令でb95〜b64、MVFACHI命令でb63〜b32、MVFACMI命令でb47〜b16、MVFACLO命令でb32〜b0のデータをそれぞれ読みます。