ルネサス
MUL
乗算
MULtiply
【構文】
(1)MUL src, dest
(2)MUL src, src2, dest
【オペレーション】
(1)dest = src * dest;
(2)dest = src * src2;
【機能】
-
(1)srcとdestを乗算し、その結果をdestに格納します。
演算は32ビットで行い、結果の下位32ビットを格納します。
演算結果は、符号付き乗算、符号なし乗算に関係なく同じになります。
(2)srcとsrc2を乗算し、その結果をdestに格納します。
注
アキュムレータ(ACC)を使用します。命令実行後のACCの値は不定です。
【命令フォーマット】
構文
処理
サイズ
対象
コードサイズ
(バイト)
src
src2
dest
MUL src, dest
L
#UIMM:4
−
Rd
2
#SIMM:8
3
#SIMM:16
4
#SIMM:24
5
#IMM:32
6
Rs
[Rs].memex
2 (memex == UB)
3 (memex != UB)
dsp:8[Rs].memex(注)
3 (memex == UB)
4 (memex != UB)
dsp:16[Rs].memex(注)
4 (memex == UB)
5 (memex != UB)
Rs2
弊社の「RXファミリ アセンブラ」では、ディスプレースメントの値(dsp:8、dsp:16)は、サイズ拡張指定子が“.W”または“.UW”のときは2の倍数、“.L”のときは4の倍数を指定してください。dsp:8には、サイズ拡張指定子が“.W”または“.UW”のとき0〜510(255×2)が、“.L”のとき0〜1020(255×4)が指定できます。dsp:16には、サイズ拡張指定子が“.W”または“.UW”のとき0〜131070(65535×2)が、“.L”のとき0〜262140(65535×4)が指定できます。命令コードには、1/2、1/4した値が埋め込まれます。
【フラグ変化】
フラグ変化はありません。
【記述例】
MUL #10, R2
MUL R1, R2
MUL [R1], R2
MUL 4[R1].W, R2
MUL R1, R2, R3