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レジスタの制約条件

ARMv6 より前のアーキテクチャの MUL および MLA 命令では、RnRd とは異なる必要があります。

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

SP は ARM 命令で使用できますが、これらは ARMv6T2 以降では非推奨です。Thumb 命令では SP は使用できません。

Show/hide条件フラグ

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

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

  • ARMv4 では、C フラグおよび V フラグを破棄します。

  • ARMv5T 以降のプロセッサでは、C フラグまたは V フラグへの影響はありません。

Show/hideThumb 命令

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

MULS Rd, Rn, Rd

RdRn は共に Lo レジスタである必要があります。

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

Show/hideアーキテクチャ

ARM 命令 MUL および MLA は、ARM アーキテクチャのすべてのバージョンで使用できます。

ARM 命令 MLS は、ARMv6T2 以降で使用できます。

これらの 32 ビット Thumb 命令は、ARMv6T2 以降で使用できます。

16 ビット Thumb の MULS 命令は、ARM アーキテクチャのすべての T バリアントで使用できます。

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 © 2010-2011 ARM. All rights reserved.ARM DUI 0489FJ
Non-ConfidentialID111211