| |||
Home > ARM 命令と Thumb 命令 > 乗算命令 > SMUAD{X}、SMUSD{X} |
任意でオペランドの半分を交換できる、デュアル 16 ビット符号付き積和命令と積差命令です。
{X}{
op
cond
} {Rd
},Rn
,Rm
各パラメータには以下の意味があります。
op
次のいずれかを指定します。
SMUAD
デュアル乗算後に積を加算します。
SMUSD
デュアル乗算後に積を減算します。
X
任意に指定できるパラメータです。X
が指定されている場合は、乗算が行われる前に、第
2 オペランドの上位ハーフワードと下位ハーフワードが入れ替わります。
cond
任意の条件コードを指定します。
Rd
デスティネーションレジスタを指定します。
Rn、Rm
オペランドを保持するレジスタを指定します。
SMUAD
は
の下位ハーフワードと Rn
の下位ハーフワードを乗算し、Rm
の上位ハーフワードと Rn
の上位ハーフワードを乗算します。次に、得られた
2 つの積を加算し、その合計を Rm
にストアします。Rd
SMUSD
は
の下位ハーフワードと Rn
の下位ハーフワードを乗算し、Rm
の上位ハーフワードと Rn
の上位ハーフワードを乗算します。次に、最初の積から
2 番目の積を減算し、その差を Rm
にストアします。Rd
これらの ARM 命令は、ARMv6 以降で使用できます。
これらの 32 ビット Thumb 命令は、ARMv6T2 以降で使用できます。ARMv7-M アーキテクチャでは、これらは ARMv7E-M 実装でだけ使用できます。
これらの命令の 16 ビット Thumb バージョンはありません。