MUL

乗算

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に格納します。

-

演算は32ビットで行い、結果の下位32ビットを格納します。

-

演算結果は、符号付き乗算、符号なし乗算に関係なく同じになります。

アキュムレータ(ACC)を使用します。命令実行後のACCの値は不定です。

 

【命令フォーマット】

構文

処理

サイズ

対象

コードサイズ

(バイト)

src

src2

dest

MUL src, dest

L

#UIMM:4

Rd

2

L

#SIMM:8

Rd

3

L

#SIMM:16

Rd

4

L

#SIMM:24

Rd

5

L

#IMM:32

Rd

6

L

Rs

Rd

2

L

[Rs].memex

Rd

2 (memex == UB)

3 (memex != UB)

L

dsp:8[Rs].memex(注)

Rd

3 (memex == UB)

4 (memex != UB)

L

dsp:16[Rs].memex(注)

Rd

4 (memex == UB)

5 (memex != UB)

L

Rs

Rs2

Rd

3

弊社の「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