MRA |
Déplace un registre à accumulateur |
| ARM |
Syntaxe
|
MRA{cond} RdLo, RdHi, Acc
|
Paramètres
| Nom |
Description |
| cond |
Ce paramètre optionnel permet d'indiquer le code de condition |
| Acc |
Ce paramètre permet d'indiquer le registre accumulateur interne. Le nom standard est «accx», où x indique un entier dans l'intervalle entre 0 et n. La valeur n dépend du microprocesseur. La valeur 0 indique le microprocesseur courant. |
| RdLo |
Ce paramètre permet d'indiquer le registre de la partie basse. |
| RdHi |
Ce paramètre permet d'indiquer le registre de la partie haute. |
Description
Cette instruction permet de copier un accumulateur de 40 bits dans un registre.
Remarques
- Cette instruction est uniquement disponible sur les microprocesseur XScale du fabricant Intel.
- Accumulateur 40 bits : cas rare : L'usage d'un accumulateur de 40 bits est inhabituel dans les architectures standard, mais courant dans des opérations
de traitement de signal (DSP). MRA permet donc d'exploiter des calculs de haute précision en transférant leur résultat vers des registres ARM classiques.
- Transfert en deux parties (haute et basse) : L'instruction extrait le contenu 40 bits de l'accumulateur pour le transférer dans deux registres ARM :
RdLo pour les 32 bits de poids faible, et RdHi pour les 8 bits restants de poids fort. Cela permet une récupération complète du résultat étendu.
- Étroitement liée aux instructions de type MIA : MRA est souvent utilisée en conjonction avec des instructions MIAxy ou MIAPH, produisant des résultats
dans les accumulateurs internes. Ainsi, elle joue un rôle clé pour transférer ces résultats vers l'ensemble de registres général.
- Peu utilisée hors contexte DSP : Dans un programme ARM classique, l'usage de MRA est quasiment inexistant. C'est une instruction très spécialisée,
utile uniquement si l'on exploite les fonctions DSP intégrées dans le cour XScale, par exemple pour du filtrage numérique ou des opérations matricielles.
- Nécessité de gestion des registres prudente : L'utilisation de deux registres de destination impose une planification soignée de l'allocation de registres,
surtout dans des fonctions critiques en performance. Mal gérer les destinations de RdLo et RdHi peut écraser des données importantes.
- Syntaxe enrichie par le conditionnel : Comme de nombreuses instructions ARM, MRA peut être conditionnelle via {cond}. Cela permet de ne déplacer les
données de l'accumulateur vers les registres que si certaines conditions sont vérifiées, évitant ainsi des transferts inutiles.
- Peut être utilisée pour du débogage ou de la vérification : Accéder directement à un accumulateur 40 bits via MRA peut s'avérer utile dans des routines
de diagnostic, pour inspecter les résultats d'opérations internes sans passer par des mémoires intermédiaires, et ainsi minimiser la latence.
Dernière mise à jour : Dimanche, le 12 novembre 2017