LDC2 |
Charge de données vers le coprocesseur 2 |
|---|---|
| ARM | |
Syntaxe
| LDC2{L}{cond} coproc, CRd, [Rn] |
| LDC2{L}{cond} coproc, CRd, [Rn, #{-}offset] |
| LDC2{L}{cond} coproc, CRd, [Rn, #{-}offset]! |
| LDC2{L}{cond} coproc, CRd, [Rn], #{-}offset |
| LDC2{L}{cond} coproc, CRd, label |
| LDC2{L}{cond} coproc, CRd, [Rn], {option} |
Paramètres
| Nom | Description |
|---|---|
| cond | Ce paramètre optionnel permet d'indiquer le code de condition |
| L | Ce paramètre d'indiquer un suffixe spécifiant un long transfert. |
| coproc | Ce paramètre permet d'indiquer le nom de l'instruction du coprocesseur. Le nom standard doit être un entier dans l'intervalle de 0 à 15. |
| CRd | Ce paramètre permet d'indiquer le registre du coprocesseur à charger. |
| Rn | Ce paramètre permet d'indiquer le registre sur lequel l'adresse mémoire est basé. Si PC est spécifié, la valeur utilisé est l'adresse de l'instruction courante plus 8. |
| - | Ce paramètre optionnel permet d'indiquer qu'il faut soustraire le déplacement au paramètre Rn. Autrement, si le paramètre n'est pas indiquer, il additionnera le déplacement au paramètre Rn. |
| offset | Ce paramètre permet d'indiquer une expression à évaluer en la multipliant par 4, dans l'intervalle de 0 à 1020. |
| ! | Ce paramètre optionnel permet d'indiquer un suffixe indiquant que l'adresse est inclus dans le déplacement écrit dans le paramètre Rn. |
| label | Ce paramètre permet d'indiquer une expression relative au PC aligné en mot. L'emplacement de l'étiquette indiqué par se paramètre doit être situé dans l'intervalle de 1020 octets de l'instruction courante. |
| {option} | Ce paramètre permet d'indiquer une option dans l'intervalle de 0 à 255 situé entre accolade. |
Description
Cette instruction permet de transférer des données de la mémoire vers le coprocesseur pour l'architecture ARMv5T.
Remarques
- LDC2 est une variante spécialisée de LDC dédiée au coprocesseur 2 : L'instruction LDC2 fonctionne de manière identique à LDC, mais elle est spécifiquement destinée au coprocesseur numéro 2. Cela permet de cibler un composant matériel particulier, souvent réservé à des tâches avancées comme la cryptographie, le traitement du signal ou les extensions personnalisées.
- Elle prend en charge des modes d'adressage complexes et flexibles : Comme LDC, LDC2 permet plusieurs formes d'adressage mémoire : direct, avec déplacement, avec mise à jour automatique (!), ou même post-incrémentée. Cela facilite l'intégration dans des structures de données séquentielles ou dans des contextes multitâches nécessitant une gestion précise de la mémoire.
- Le registre Rn représente toujours la base d'adresse mémoire : Le paramètre Rn est essentiel car il indique l'adresse à partir de laquelle les données vont être extraites. Si Rn est le registre PC, l'adresse réelle utilisée est PC + 8, pour refléter l'exécution en pipeline propre à l'architecture ARM.
- Le suffixe L active les transferts longs vers le coprocesseur : Avec le suffixe L, l'instruction effectue un transfert de données "long", généralement plus volumineux ou structuré. Cela peut être nécessaire pour charger un état complet dans un coprocesseur ou pour initialiser des registres internes à partir de la mémoire.
- L'usage du champ label permet un accès relatif au programme : Le paramètre label offre un accès basé sur la position du programme, souvent utilisé pour des blocs de données définis statiquement (constants, tables,...). Cela facilite la lisibilité du code et réduit les erreurs de gestion d'adresses absolues.
- Les offsets permettent un accès aligné aux données : Le offset est multiplié par 4, garantissant un alignement sur les mots (32 bits), comme attendu par les coprocesseurs ARM. Ce mécanisme est essentiel pour optimiser les performances et éviter les accès mémoire non alignés, qui peuvent entraîner des exceptions.
- Le champ option permet de spécifier des paramètres personnalisés : L'utilisation de {option} dans la syntaxe permet d'envoyer des valeurs spécifiques au coprocesseur, dans l'intervalle 0 à 255. Cela peut être utilisé pour déclencher des opérations particulières ou informer le coprocesseur du type de données transférées.
- Le champ cond permet une exécution conditionnelle de l'instruction : Le paramètre cond autorise l'exécution de l'instruction sous certaines conditions basées sur les drapeaux du programme (comme EQ, NE, GT,...). Cela permet d'intégrer LDC2 dans des séquences de branchement sans ajouter de surcharge de test supplémentaire.
Dernière mise à jour : Dimanche, le 12 novembre 2017