SETEND |
Fixe le boutisme |
| ARM |
Syntaxe
Paramètres
| Nom |
Description |
| specifier |
Ce paramètre permet d'indiquer le spécificateur : |
| BE |
Cette constante permet d'indiquer le mode gros-boutiste (Big Endian) |
| LE |
Cette constante permet d'indiquer le mode petit-boutiste (Little Endian). |
Description
Cette instruction permet de fixer le bit de boutisme dans le CPSR, sans affecter les autres bits dans le CPSR.
Remarques
- Permet de basculer dynamiquement entre Big Endian et Little Endian : L'instruction SETEND permet de modifier à la volée l'ordre d'interprétation des
octets en mémoire, ce qu'on appelle le boutisme. Cela peut être utile dans des systèmes hétérogènes ou interopérables, notamment lors de communication avec du matériel
ou des protocoles de données spécifiques.
- Modifie uniquement le bit E du CPSR : SETEND agit uniquement sur le bit E (Endianness) du registre CPSR (Current Program Status Register). Elle n'affecte
pas les autres drapeaux comme ceux de condition (N, Z, C, V), ce qui évite des effets de bord sur les traitements en cours.
- Utilisable uniquement en mode ARM, pas Thumb : Cette instruction n'est disponible qu'en mode ARM classique, et non en Thumb ou Thumb-2, car la gestion
du boutisme y est plus restreinte pour des raisons de compacité d'instruction et de sécurité.
- Peut nécessiter des privilèges spécifiques : Le changement de boutisme peut être restreint aux niveaux d'exécution privilégiés (comme le mode superviseur
ou système), car il peut compromettre le comportement des accès mémoire s'il est utilisé de manière imprudente.
- Ne change pas le contenu des données, mais leur interprétation : L'instruction SETEND ne modifie en rien les données déjà présentes en mémoire. Elle
affecte uniquement la manière dont elles sont lues ou écrites par le processeur à partir de ce moment-là. Cela peut provoquer des bogues subtils si on ne s'en rend
pas compte.
- Souvent utilisée dans des environnements de test ou d'émulation : On retrouve cette instruction dans des environnements où le processeur doit émuler
ou tester différentes configurations d'endianess, par exemple pour valider des couches logicielles compatibles multi-plateformes.
- Peu utilisée dans les programmes classiques : Dans la majorité des systèmes embarqués ou OS ARM modernes, le boutisme est fixé au démarrage (souvent
en Little Endian), et SETEND n'est quasiment jamais utilisée en exécution normale. Elle est donc une instruction plutôt marginale.
- Peut provoquer des comportements indéterminés si mal utilisée : Changer le boutisme alors que des opérations mémoire critiques sont en cours (comme des
DMA, des échanges avec du matériel ou des buffers en cache) peut entraîner des corruptions de données, rendant cette instruction potentiellement dangereuse si elle n'est
pas strictement encadrée.
Voir également
Langage de programmation - Assembleur - Mémoire - Petit-boutiste (Little Endian) et Gros-boutiste (Big Endian)
Dernière mise à jour : Dimanche, le 12 novembre 2017