EMUL

符号付き乗算

EMUL

Extended MULtiply, signed


【構文】

EMUL src, dest

 

【オペレーション】

dest2:dest = dest * src;

 

【機能】

-

destをsrcで符号付き乗算します。

-

src、destとも32ビットで演算し、結果を64ビットでレジスタペアdest2:dest(R(n+1):Rn)に格納します。

-

destにはRn(n:0〜14)の15種類が指定できます。

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

destで指定するレジスタ

64ビット拡張で使用されるレジスタ

R0

R1:R0

R1

R2:R1

R2

R3:R2

R3

R4:R3

R4

R5:R4

R5

R6:R5

R6

R7:R6

R7

R8:R7

R8

R9:R8

R9

R10:R9

R10

R11:R10

R11

R12:R11

R12

R13:R12

R13

R14:R13

R14

R15:R14

 

【命令フォーマット】

構文

処理

サイズ

対象

コードサイズ

(バイト)

src

dest

EMUL src, dest

L

#SIMM:8

Rd (Rd=R0~R14)

4

L

#SIMM:16

Rd (Rd=R0~R14)

5

L

#SIMM:24

Rd (Rd=R0~R14)

6

L

#IMM:32

Rd (Rd=R0~R14)

7

L

Rs

Rd (Rd=R0~R14)

3

EMUL src, dest

L

[Rs].memex

Rd (Rd=R0~R14)

3(memex == UB)

4(memex != UB)

L

dsp:8[Rs].memex(注)

Rd (Rd=R0~R14)

4(memex == UB)

5(memex != UB)

L

dsp:16[Rs]memex(注)

Rd (Rd=R0~R14)

5(memex == UB)

6(memex != UB)

弊社の「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した値が埋め込まれます。

 

【フラグ変化】

フラグ変化はありません。

 

【記述例】

EMUL    #10, R2
EMUL    R1, R2
EMUL    [R1], R2
EMUL    8[R1].W, R2