MUL、MLA、MLS

符号付きまたは符号なしの 32 ビットオペランドを使用して乗算、積和、および積差を実行し、結果の下位 32 ビットを返します。

Show/hide構文

MUL{S}{cond} {Rd}, Rn, Rm
MLA{S}{cond} Rd, Rn, Rm, Ra
MLS{cond} Rd, Rn, Rm, Ra

各項目には以下の意味があります。

cond

任意の条件コードを指定します。

S

任意に指定できる接尾文字です。S が指定されている場合は、演算結果に基づいて条件フラグが更新されます。

Rd

デスティネーションレジスタを指定します。

Rn、Rm

乗算する値を保持するレジスタを指定します。

Ra

加算する値または引かれる値を保持するレジスタを指定します。

Show/hide使用法

MUL 命令は RnRm の値を乗算し、演算結果の下位 32 ビットを Rd に返します。

MLA 命令は RnRm の値を乗算し、Ra の値を加算して、演算結果の下位 32 ビットを Rd に返します。

MLS 命令は RnRm の値を乗算し、その結果を Ra の値から減算して、最終的な演算結果の下位 32 ビットを Rd に返します。

Show/hideレジスタの制約条件

レジスタには PC は使用できません。

SP は A32 命令で使用できますが、これは非推奨です。T32 命令では SP は使用できません。

Show/hide条件フラグ

S が指定されている場合、MULMLA では、以下のようになります。

  • 結果に応じて N フラグおよび Z フラグを更新します。

  • C フラグまたは V フラグは影響を受けません。

Show/hide16 ビット命令

MUL 命令は、T32 コード内では次の形式で使用できます。これらは 16 ビット命令です。

MULS Rd, Rn, Rd

RdRn は共に Lo レジスタである必要があります。この形式は IT ブロック以外でのみ使用できます。

MUL{cond} Rd, Rn, Rd

RdRn は共に Lo レジスタである必要があります。この形式は IT ブロック内でのみ使用できます。

条件フラグを更新できる T32 乗算命令は他にはありません。

Show/hide可用性

これらの 32 ビット命令は A32 および T32 で使用できます。

MUL{S} 命令は、T32 で 16 ビットエンコーディングで使用できます。

Show/hide

    MUL     r10, r2, r5
    MLA     r10, r2, r1, r5
    MULS    r0, r2, r2
    MULLT   r2, r3, r2
    MLS     r4, r5, r6, r7

Show/hide関連項目

Copyright © 2014 ARM. All rights reserved.ARM DUI 0802AJ
Non-ConfidentialID061814