Assembleur SuperH | DMULU.L |
---|---|
SuperH | Double-Length Multiply as Unsigned |
Syntaxe
DMULU.L Rm, Rn |
Description
Cette instruction permet d'effectuer un traitement de multiplication naturel (non-signé) de contenu d'un registre général avec un autre registre général et entrepose le résultat 64 bits dans les registres MACL et MACH.
Algorithme
MODULE DMULU(m,n) * DMULU.L Rm,Rn RnL ← R[n] ∩ 0000FFFFh RnH ← (R[n] >> 16) ∩ 0000FFFFh RmL ← R[m] ∩ 0000FFFFh RmH ← (R[m] >> 16) ∩ 0000FFFFh temp0 ← RmL x RnL temp1 ← RmH x RnL temp2 ← RmL x RnH temp3 ← RmH x RnH Res2 ← 0 Res1 ← temp1 + temp2 SI Res1 < temp1 ALORS Res2 ← Res2 + 00010000h FIN SI temp1 ← (Res1 << 16) ∩ 0FFFF0000h Res0 ← temp0 + temp1 SI Res0 < temp0 ALORS Res2 ← Res2 + 1 FIN SI Res2 ← Res2 + ((Res1 >> 16) ∩ 0000FFFFh) + temp3 MACH ← Res2 MACL ← Res0 PC ← PC + 2 |
Mnémonique
Instruction | Abstrait | Opcode | Cycle |
---|---|---|---|
DMULU.L Rm, Rn | Sans signe, MACH, MACL ← Rn × Rm | 0011nnnnmmmm0101 | 2 à 4 |
Dernière mise à jour : Mardi, le 28 juillet 2015