Section courante

A propos

Section administrative du site

Assembleur SuperH

MAC.W

SuperH Multiply and Accumulate Calculation Word

Syntaxe

MAC.W @Rm+,@Rn+
MAC @Rm+,@Rn+

Description

Cette instruction permet d'effectuer une multiplication entière (signé) d'opérandes 16 bits en utilisant le contenu d'un registre général et d'un registre d'adresse.

Algorithme

MODULE MACW(m,n) * MAC.W @Rm+,@Rn+
   tempn ← (long)Read_Word(R[n])
   R[n] ← R[n] + 2
   tempm ← (long)Read_Word(R[m])
   R[m] ← R[m] + 2
   templ ← MACL
   tempm ← ((long)(short)tempn x (long)(short)tempm)
   SI (long)MACL ≥ 0 ALORS
      dest ← 0
   SINON
      dest ← 1
   FIN SI
   SI (long)tempm ≥ 0 ALORS
      src ← 0
      tempn ← 0
   SINON
      src ← 1
      tempn ← FFFFFFFFh
   FIN SI
   src ← src + dest
   MACL ← MACL + tempm
   SI (long)MACL ≥ 0 ALORS
      ans ← 0
   SINON
      ans ← 1
   FIN SI
   ans ← ans + dest
   SI S = 1 ALORS
      SI ans = 1 ALORS
         SI src = 0 OU src = 2 ALORS
            MACH ← MACH U 00000001h
         FIN SI
         SI src = 0 ALORS
            MACL ← 7FFFFFFFh
         FIN SI
         SI src = 2 ALORS
            MACL ← 80000000h
         FIN SI
      FIN SI
   SINON
      MACH ← MACH + tempn
      SI templ > MACL ALORS
         MACH ← MACH + 1
      FIN SI
      SI MACH ∩ 00000200h = 0 ALORS
         MACH ← MACH ∩ 000003FFh
      SINON
         MACH ← MACH U FFFFFC00h
      FIN SI
   FIN SI
   PC ← PC + 2

Mnémonique

Instruction Abstrait Opcode Cycle
MAC.W @Rm+, @Rn+ Avec signe, MAC ← (Rn) × (Rm) + MAC 0100nnnnmmmm1111 3/(2)
MAC @Rm+, @Rn+


Dernière mise à jour : Mardi, le 28 juillet 2015