関数呼び出し前後において、レジスタの値が同一であることを保証するかどうかは、レジスタにより異なります。また、オプションにより特定の用途向けに使用するレジスタがあります。レジスタの使用規則を表 9.1に示します。
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 
R0 
 | 
 
保証する 
 | 
 
スタックポインタ 
 | 
 
スタックポインタ 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
R1 
 | 
 
保証しない 
 | 
 
引数1 
 | 
 
戻り値1 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
R2 
 | 
 
保証しない 
 | 
 
引数2 
 | 
 
戻り値2 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
R3 
 | 
 
保証しない 
 | 
 
引数3 
 | 
 
戻り値3 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
R4 
 | 
 
保証しない 
 | 
 
引数4 
 | 
 
戻り値4 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
R5 
 | 
 
保証しない 
 | 
 
- 
 | 
 
(不定) 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
R6 
 | 
 
保証する 
 | 
 
- 
 | 
 
(入口の値を保持) 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
R7 
 | 
 
保証する 
 | 
 
- 
 | 
 
(入口の値を保持) 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
R8 
 | 
 
保証する 
 | 
 
- 
 | 
 
(入口の値を保持) 
 | 
 
- 
 | 
 
○ 
 | 
 
- 
 | 
| 
 
R9 
 | 
 
保証する 
 | 
 
- 
 | 
 
(入口の値を保持) 
 | 
 
- 
 | 
 
○ 
 | 
 
○ 
 | 
| 
 
R10 
 | 
 
保証する 
 | 
 
- 
 | 
 
(入口の値を保持) 
 | 
 
○ 
 | 
 
○ 
 | 
 
○ 
 | 
| 
 
R11 
 | 
 
保証する 
 | 
 
- 
 | 
 
(入口の値を保持) 
 | 
 
○ 
 | 
 
○ 
 | 
 
○ 
 | 
| 
 
R12 
 | 
 
保証する 
 | 
 
- 
 | 
 
(入口の値を保持) 
 | 
 
○ 
 | 
 
○ 
 | 
 
○ 
 | 
| 
 
R13 
 | 
 
保証する 
 | 
 
- 
 | 
 
(入口の値を保持) 
 | 
 
○ 
 | 
 
○ 
 | 
 
○ 
 | 
| 
 
R14 
 | 
 
保証しない 
 | 
 
- 
 | 
 
(不定) 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
R15 
 | 
 
保証しない 
 | 
 
構造体戻り値へのポインタ 
 | 
 
(不定) 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
DR0~DR15 
【V3.01.00以降】 
 | 
 
保証する 
 | 
 
- 
 | 
 
(入口の値を保持) 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
DCMR 
【V3.01.00以降】 
 | 
 
保証する 
 | 
 
- 
 | 
 
(入口の値を保持) 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
DPSW 
DECNT 
DEPC 
【V3.01.00以降】 
 | 
 
保証しない 
 | 
 
- 
 | 
 
(不定) 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
ISP 
USP 
 | 
 
スタックポインタの場合はR0と同じ。 
そうでない場合は変化しません。*4 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
PC 
 | 
 
- 
 | 
 
プログラムカウンタ*5 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
PSW 
 | 
 
保証しない 
 | 
 
- 
 | 
 
(不定) 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
FPSW 
 | 
 
保証しない 
 | 
 
- 
 | 
 
(不定) 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
ACC 
 | 
 
保証しない*6 
 | 
 
- 
 | 
 
(不定) *6 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
ACC0 
ACC1 
 | 
 
保証しない*6 
 | 
 
- 
 | 
 
(不定) *6 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
| 
 
INTB 
BPC 
BPSW 
FINTV 
 | 
 
- 
 | 
 
変化しません*4 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
 
- 
 | 
 
注 1.  | R10~R13の4本は、fint_registerオプションにより、一部または全部が「高速割り込み機能」に使われることがあります。「高速割り込み機能」に割り当てられたレジスタは、他の用途に使用することはできません。機能の詳細はオプションの説明を参照してください。  | 
 
注 2.  | R8~R13の6本は、baseオプションにより、一部または全部が「ベースレジスタ機能」に使われることがあります。「ベースレジスタ機能」に割り当てられたレジスタは、他の用途に使用することはできません。機能の詳細はオプションの説明を参照してください。  | 
 
注 3.  | R9~R13のうちの1本は、pidオプションにより「PID機能」に使われることがあります。「PID機能」に割り当てられたレジスタは、他の用途に使用することはできません。機能の詳細はオプションの説明を参照してください。  | 
 
注 4.  | 組み込み関数または#pragma inline_asmで、これらのレジスタを設定したり更新したりする場合を除きます。  | 
 
注 5.  | 関数の呼び出しに使用する命令の仕様に従います。関数の呼び出しには、BSR, JSR, BRA および JMPのいずれかの命令を用います。  | 
 
注 6.  | アキュムレータ(ACC, ACC0, ACC1)を更新する命令は、RXのソフトウェアマニュアルを参照してください。  |