1. CPU 機能
1.7 ベクタテーブル
ベクタテーブルには、固定ベクタテーブルと可変ベクタテーブルがあります。ベクタテーブルは、1 ベク タあたり 4 バイトで構成されており、各ベクタには対応する例外処理ルーチンの先頭アドレスを設定しま す。
1.7.1 固定ベクタテーブル
固定ベクタテーブルは、テーブルの配置アドレスが固定されたベクタテーブルです。FFFFFF80h 〜
FFFFFFFFh 番地に、特権命令例外、アクセス例外、未定義命令例外、浮動小数点例外
(注1)、ノンマスカブ
ル割り込み、リセットの各ベクタを配置しています。図 1.8 に固定ベクタテーブルを示します。
注1. RX100シリーズ、RX200シリーズは、浮動小数点演算命令に対応していないため、浮動小数点例外は発生し
ません。
図 1.8 固定ベクタテーブル
(予約領域)
(予約領域)
FFFFFFDCh
FFFFFFFCh FFFFFFE 0h FFFFFFE 4h FFFFFFE 8h FFFFFFECh F F FF F F F0 h F F FF F F F4 h F F FF F F F8 h
アクセス例外 特権命令例外
(予約領域)
未定義命令例外
(予約領域)
浮動小数点例外(注1)
(予約領域)
(予約領域)
(予約領域)
LSB
(予約領域)
ノンマスカブル割り込み リセット FFFFFFD0h
FFFFFFD4h FFFFFFD8h
MSB
FFFFFFCCh F F F F F F8 0 h
注1. RX100シリーズ、RX200シリーズは、浮動小数点演算命令に対応していないため、浮動小数点例外は発生しません。
1.7.2 可変ベクタテーブル
可変ベクタテーブルは、テーブルの配置アドレスを変えることができるベクタテーブルです。割り込み テーブルレジスタ(INTB)の内容で示された値を先頭アドレス(IntBase)とする 1,024 バイトの領域に、無 条件トラップ、割り込みの各ベクタを配置しています。図 1.9 に可変ベクタテーブルを示します。
可変ベクタテーブルには、ベクタごとに番号(0 〜 255)が付けられています。無条件トラップ発生要因 の INT 命令では INT 命令番号(0 〜 255)に対応したベクタが、BRK 命令では番号 0 のベクタが割り当てら れています。また、割り込み要因では、製品ごとに決められた番号(0 〜 255)が割り当てられています。
図 1.9 可変ベクタテーブル
INTBIntBase+4 0 IntBase
b31 b0
IntBase+8
255 IntBase+1020
割り込みベクタが 割り当てられる順序 1
2
1.8 アドレス空間
RX CPU のアドレス空間は、00000000h 番地から FFFFFFFFh 番地までの 4G バイトあります。プログラム
領域およびデータ領域合計最大 4G バイトをリニアにアクセス可能です。RX CPU のアドレス空間を図 1.10 に示します。各領域は、各製品、動作モードによって異なります。詳細は、各製品のハードウェアマニュア ルを参照してください。
図 1.10 アドレス空間
00000000h
FFFFFFFFh
/
データ領域 プログラム領域 (4Gバイトリニア)
2. アドレッシングモード
アドレッシングモードごとに、アドレッシングモードを示す記号、動作について説明します。
アドレッシングモードは、以下に示す 10 種類があります。
即値
レジスタ直接
レジスタ間接
レジスタ相対
ポストインクリメントレジスタ間接
プリデクリメントレジスタ間接
インデックス付きレジスタ間接
制御レジスタ直接
PSW 直接
プログラムカウンタ相対
2.1 本章の見方
本章の見方を以下に実例をあげて示します。
(1) 名称
アドレッシングモードの名称です。
(2) 記号
アドレッシングモードを示す記号です。
“:8”、“:16” は、直前の値の有効ビット数を示します。マニュアルの記載上、有効ビット数を明記する必要
があるために付加していますが、プログラムを記述するときは、付加する必要はありません。
(3) 解説
動作、実効アドレスの範囲を説明します。
(4) 動作図
動作を図で説明します。
レジスタ相対 dsp:5[Rn]
(Rn=
R0~R7) dsp:8[Rn]
(Rn=
R0~R15) dsp:16[Rn]
(Rn=
R0~R15)
ディスプレースメント(dsp)の値を32ビット にゼロ拡張した後、規則に従い(右図参照)、
1/2/4倍した値と、レジスタ値を加算した結果
の下位32ビットが演算対象の実効アドレスと
なります。実効アドレスの範囲は、00000000h
〜FFFFFFFFh です。dsp:n は、nビット長の ディスプレースメントを表します。
dsp:5[Rn] (Rn=R0~R7)、
dsp:8[Rn] (Rn=R0~R15)、
dsp:16[Rn] (Rn=R0~R15) が指定できます。
dsp:5[Rn] (Rn=R0~R7)は、MOV、MOVU命令 でのみ使用されます。
address レジスタ Rn
メモリ
address
dsp ×
・サイズ指定子をとる命令
.Bのとき :1倍
.Wのとき :2倍
.Lのとき :4倍
・サイズ拡張指定子をとる命令 .B/.UBのとき :1倍 .W/.UWのとき :2倍
.Lのとき :4倍
+ アドレス
増加方向