LDC |
Charge de données vers le coprocesseur |
|---|---|
| ARM | |
Syntaxe
| LDC{L}{cond} coproc, CRd, [Rn] |
| LDC{L}{cond} coproc, CRd, [Rn, #{-}offset] |
| LDC{L}{cond} coproc, CRd, [Rn, #{-}offset]! |
| LDC{L}{cond} coproc, CRd, [Rn], #{-}offset |
| LDC{L}{cond} coproc, CRd, label |
| LDC{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.
Remarques
- LDC permet de transférer des données depuis la mémoire vers un coprocesseur : L'instruction LDC est utilisée pour charger des données de la mémoire vers un registre d'un coprocesseur. Cela est utile dans des contextes où des unités matérielles spécialisées (comme les unités de calcul flottant ou de cryptographie) nécessitent des données spécifiques avant exécution.
- Le suffixe L distingue les transferts longs : Le suffixe optionnel L dans LDC permet de spécifier un transfert long. Cela modifie le comportement de l'instruction selon le coprocesseur cible et la quantité de données à transférer, ce qui est important pour les performances et l'intégrité du transfert.
- L'instruction offre plusieurs modes d'adressage souples : La syntaxe de LDC inclut différentes variantes comme : adressage direct, avec décalage, avec mise à jour automatique du pointeur (!), ou avec post-incrémentation. Cette flexibilité permet d'adapter la lecture mémoire au contexte du programme, notamment dans les boucles ou les routines de traitement par blocs.
- Le registre Rn est la base d'adresse mémoire : Rn est utilisé pour déterminer l'emplacement mémoire à partir duquel les données seront lues. Si Rn est le registre PC, l'adresse est calculée comme PC + 8, ce qui reflète l'architecture ARM, où le PC pointe deux instructions plus loin que l'exécution actuelle.
- L'utilisation du label permet une lecture relative au programme : Quand un label est utilisé, LDC peut charger des données situées à une position fixe par rapport à l'instruction. C'est particulièrement pratique pour accéder à des constantes ou structures en mémoire proches du code sans manipuler explicitement les pointeurs.
- L'option offset permet d'ajuster dynamiquement l'adresse d'accès : L'offset est un déplacement multiplié par 4, ce qui garantit un alignement sur les mots (32 bits). Ce paramètre rend l'instruction capable de naviguer dans des structures mémoire complexes, comme des tableaux ou des blocs structurés pour les coprocesseurs.
- Le champ coproc doit être un entier entre 0 et 15 : Le paramètre coproc identifie le coprocesseur visé par le transfert. Chaque valeur correspond à un coprocesseur spécifique, et l'utilisation de LDC dépend du support matériel réel du système ARM, certains coprocesseurs pouvant être désactivés ou non présents.
- La syntaxe peut inclure des options avancées dans {option} : Les accolades {option} permettent de transmettre des informations spécifiques au coprocesseur concerné, souvent utilisées pour affiner les modes d'accès ou spécifier des types de transfert particuliers. Ces options sont limitées à l'intervalle 0 à 255, ce qui laisse une grande variété de possibilités.
Dernière mise à jour : Dimanche, le 12 novembre 2017