Syntaxe
Paramètres
| Nom |
Description |
| cond |
Ce paramètre optionnel permet d'indiquer le code de condition |
| Rd |
Ce paramètre permet d'indiquer un registre de destination. |
| Rm |
Ce paramètre permet d'indiquer un registre contenant la valeur à copier. |
Description
Cette instruction permet de copier une valeur d'un registre vers un autre.
Remarques
- CPY copie simplement une valeur d'un registre à un autre : L'instruction CPY sert à copier la valeur contenue dans un registre source Rm vers un
registre destination Rd. Cela permet de dupliquer une donnée sans la modifier, et de la réutiliser ailleurs dans le programme. C'est une opération fondamentale en
assembleur.
- Équivalente à MOV dans de nombreux cas : Dans certaines architectures ARM, CPY Rd, Rm est équivalente à MOV Rd, Rm. Elle peut être vue comme une version
simplifiée de MOV lorsque l'on ne souhaite ni effectuer de décalage ni manipuler d'opérandes immédiats. Elle offre donc une syntaxe claire pour les copies simples.
- Compatible avec l'exécution conditionnelle : Comme beaucoup d'instructions ARM, CPY accepte un code conditionnel {cond}. Cela permet d'effectuer la copie
uniquement si une condition définie dans les drapeaux est remplie (par exemple, CPYNE R0, R1 ne copiera que si le dernier résultat n'était pas zéro).
- N'affecte pas les drapeaux du processeur : Contrairement à certaines instructions comme CMP ou TST, CPY ne modifie pas le registre d'état CPSR. Elle se
contente de copier une valeur, ce qui permet de l'utiliser sans impact sur les décisions conditionnelles suivantes dans le programme.
- Utile pour réorganiser les registres avant un appel : Lorsqu'on prépare des paramètres pour une fonction ou une interruption, CPY permet de placer
rapidement des valeurs dans les bons registres. C'est aussi utile lorsqu'on souhaite conserver une copie temporaire d'une donnée avant de la modifier.
- Instruction simple, rapide, et à faible coût en cycles : CPY fait partie des instructions les plus rapides sur l'architecture ARM. Elle ne demande qu'un
seul cycle dans la plupart des cas, ce qui la rend très efficace pour les manipulations de base, en particulier dans les boucles ou les routines critiques.
- Peut être utilisée pour optimiser la lisibilité du code : Utiliser CPY (plutôt qu'une MOV complexe) peut aider à clarifier l'intention du programmeur,
surtout dans les cas où l'on veut simplement dupliquer une valeur. Cela permet de distinguer facilement les opérations simples des opérations avec transformation ou
calcul.
- Instruction parfois absente selon l'assembleur utilisé : Selon l'outil ou l'assembleur ARM (par exemple, GNU as ou Keil), CPY peut être interprétée comme
un alias de MOV, ou ne pas être directement reconnue. Il est donc important de vérifier la documentation de l'outilchain utilisée pour s'assurer de sa prise en charge.
Dernière mise à jour : Dimanche, le 12 novembre 2017