記述した値は32ビット符号付きで処理されます。(浮動小数点数を除く)
0〜1のいずれかの数字で記述し、接尾辞としてBまたはbを添付します。
0〜7までの数字で記述し、接尾辞としてOまたはoを添付します。
0〜9, A〜F, a〜fで記述し、接尾辞としてHまたはhを添付します。
アルファベットで始まる数値の場合は接頭辞として0を添付します。
浮動小数点数は制御命令 ".FLOAT"と".DOUBLE" のオペランドにのみ記述できます。
FLOAT (32bits)1.17549435×10-38 〜 3.40282347×1038
DOUBLE (64bits)2.2250738585072014×10-308 〜 1.7976931348623157×10308
命令のオペランド部に記述できるアドレッシングモードは以下3つがあります。
指定したレジスタが演算の対象となります。R0〜R15、SPを記述することができます。SPはR0と解釈します。(R0=SP)
#imm:n、#uimm:n、および#simm:n は、n ビット長の即値を表します。
レジスタの値が演算対象の実効アドレスになります。実効アドレスの範囲は、00000000h〜FFFFFFFFhです。
ディスプレースメント(dsp)を32ビットにゼロ拡張した値と、レジスタ値を加算した結果が演算対象の実効アドレスとなります。実効アドレスの範囲は、00000000h〜FFFFFFFFh です。dsp:n は、nビット長のディスプレースメントを表します。
dspの値は以下規則によりスケーリングされた値で指定します。アセンブラではスケーリング前の値に戻し、命令のビットパターンに埋め込みます。
サイズ指定子W/Lで2/4の倍数でない場合、アセンブル時確定値はアセンブラエラー
#immで示した即値が演算の対象となります。即値がアセンブル時確定値でない場合はエラー処理されます。
このアドレッシングは、DSP機能命令(RACW)のsrcにのみ使用されます。1または2を記述できます。
#immで示した2 ビット即値が演算の対象となります。このアドレッシングは、コプロセッサ命令(MVFCP,MVTCP,OPECP)のコプロセッサ番号指定にのみ使用されます。
#immで示した3 ビット即値が演算の対象となります。このアドレッシングは、ビット操作命令(BCLR,BMCnd,BNOT,BSET,BTST)のビット番号指定に使用されます。
ADD,AND,CMP,MOV,MUL,OR,SUB命令のソースに使用される場合は、#immで示した4 ビット即値を32ビットにゼロ拡張した結果が演算の対象となります。
MVTIPL命令の割り込み優先レベル指定に使用される場合は、#immで示した4ビット即値が演算の対象となります。
#immで示した5 ビット即値が演算の対象となります。このアドレッシングは、ビット操作命令(BCLR, BMCnd, BNOT, BSET, BTST)のビット番号指定、シフト命令(SHAR,SHLL,SHLR)のシフト幅指定、および、ローテート命令(ROTL,ROTR)のローテート幅指定にのみ使用されます。
5ビットディスプレースメント(dsp)を32ビットにゼロ拡張した値と、レジスタ値を加算した結果が演算対象の実効アドレスとなります。実効アドレスの範囲は、00000000h〜FFFFFFFFh です。
dspの値はサイズ指定子.B/.W/.L に応じて、それぞれ1/2/4倍した値で指定します。dspの値がアセンブル時確定値でない場合、エラー処理をします。このアドレッシングは、MOV,MOVU 命令にのみ使用されます。
*src/destのレジスタもR0〜R7でなくてはなりません。
レジスタの値に、サイズ指定子.B/.W/.L に応じて、それぞれ1/2/4 を加算します。更新前のレジスタの値が演算対象の実効アドレスとなります。実効アドレスの範囲は、00000000h〜FFFFFFFFh です。このアドレッシングは、MOV,MOVU命令にのみ使用されます。
レジスタの値に、サイズ指定子.B/.W/.L に応じて、それぞれ1/2/4 を減算します。更新後のレジスタの値が演算対象の実効アドレスとなります。実効アドレスの範囲は、00000000h〜FFFFFFFFh です。このアドレッシングは、MOV,MOVU命令にのみ使用されます。
インデックスレジスタ(Ri)の値をサイズ指定子.B/.W/.L に応じて、それぞれ1/2/4 倍した値とベースレジスタ(Rb)の値を加算した結果の下位32 ビットが演算対象の実効アドレスとなります。実効アドレスの範囲は、00000000h〜FFFFFFFFh です。このアドレッシングは、MOV,MOVU 命令にのみ使用されます。
このアドレッシングは、MVTC,POPC,PUSHC,MVFC 命令にのみ使用されます。
指定したフラグ、または、ビットが演算の対象となります。このアドレッシングは、CLRPSW,SETPSW 命令にのみ使用されます。
プログラムカウンタの値と、Rnの値を符号付きで加算した結果が実効アドレスとなります。Rnの値の範囲は、-2147483648〜2147483647です。実効アドレスの範囲は、00000000h〜FFFFFFFFh です。このアドレッシングモードは、BRA(.L)、BSR(.L)命令に使用されます。
分岐命令の分岐先アドレスを表します。指定したシンボル、数値が実効アドレスとなります。
指定した分岐先アドレスからプログラムカウンタの値を引いたものをディスプレースメント(pcdsp)として命令のビットパターンに埋め込みます。
分岐距離指定子が“.S”の場合、プログラムカウンタの値とディスプレースメントの値を符号なしで加算した結果の下位32 ビットが実効アドレスとなります。
実効アドレスの範囲は、00000000h〜FFFFFFFFh です。このアドレッシングは、BRA,BCnd(Cnd==EQ,NE,Z,NZ のみ)のみに使用できます。
分岐命令の分岐先アドレスを表します。指定したシンボル、数値が実効アドレスとなります。
指定した分岐先アドレスからプログラムカウンタの値を引いたものをディスプレースメント(pcdsp)として命令のビットパターンに埋め込みます。
分岐距離指定子が“.B”または“.W”または“.A”の場合、プログラムカウンタの値とディスプレースメントの値を符号付きで加算した結果の下位32 ビットが実効アドレスとなります。
“.W”の場合 32768 ≦ pcdsp:16≦ +32767
“.A”の場合 8388608 ≦ pcdsp:24 ≦ +8388607
実効アドレスの範囲は、00000000h〜FFFFFFFFh です。
ビット長指定子はオペランドの即値、またはディスプレースメントのサイズを指定します。
本指定子はオペランドに記述された即値、またはディスプレースメントの直後に指定します。
アセンブラは指定されたビット長のアドレッシングモードを選択します。
本指定子を省略した場合はアセンブラがもっとも効率のよいビット長を選択します。
本指定子が記述されている場合には最適選択は行わず、指定されたビット長とします。
本指定子はアセンブラ制御命令のオペランドには記述できません。
即値、ディスプレースメントの式と本指定子の間には、1つ以上の空白文字を入れることができます。
命令フォーマットに存在しないビット長が指定された場合は、エラー処理されます。
サイズ拡張指定子は、演算命令でソースがメモリオペランドの場合、メモリオペランドのサイズと拡張方法を指定するために付加されます。
本指定子はメモリオペランドの直後に記述し、間に空白文字を入れることはできません。
サイズ拡張指定子は特定の命令と、メモリオペランドの組み合わせに対してのみ有効で、有効でない命令とオペランドの組み合わせで指定した場合は、エラー処理をします。
指定可能な命令とオペランドの組み合わせは、RXファミリソフトウェアマニュアルの命令フォーマットのオペランドに .memex が付いているパターンのみです。
省略時はビット操作命令では'B'として扱い、それ以外の命令では'L'として扱います。