SXTAB |
Étendre addition signé |
| ARM |
Syntaxe
|
SXTAB{cond} {Rd}, Rn, Rm {,rotation}
|
Paramètres
| Nom |
Description |
| cond |
Ce paramètre optionnel permet d'indiquer le code de condition. |
| Rd |
Ce paramètre permet d'indiquer le registre de destination |
| Rn |
Ce paramètre permet d'indiquer le registre contenant le nombre à ajouter. |
| Rm |
Ce paramètre permet d'indiquer le registre contenant la valeur à étendre. |
| rotation |
Ce paramètre optionnel permet d'indiquer la rotation à appliquer : |
| ROR #8 |
Cette constante permet d'indiquer que la valeur du paramètre Rm doit effectuer une rotation vers la gauche de 8 bits. |
| ROR #16 |
Cette constante permet d'indiquer que la valeur du paramètre Rm doit effectuer une rotation vers la gauche de 16 bits. |
| ROR #24 |
Cette constante permet d'indiquer que la valeur du paramètre Rm doit effectuer une rotation vers la gauche de 24 bits. |
Description
Cette instruction permet d'étendre les signes de l'octet et d'effectuer une addition entière de 8 à 32 bits.
Remarques
- Addition d'un octet signé étendu à un entier 32 bits : L'instruction SXTAB prend un octet signé depuis un registre, l'étend en 32 bits (avec préservation
du signe), puis l'additionne à un autre registre. Cela permet d'exploiter efficacement des données 8 bits tout en maintenant une précision de calcul sur 32 bits.
- Support des rotations pour sélectionner dynamiquement l'octet : Grâce à l'option rotation, on peut choisir quel octet de Rm sera utilisé (en le plaçant en
position de poids faible). Cela permet de manipuler différents octets d'un même registre, évitant ainsi des instructions de masquage ou de décalage supplémentaires.
- Instruction utile pour les conversions de formats de données : SXTAB est particulièrement utile dans les applications multimédia ou de traitement du
signal, où des données signées de 8 bits doivent être combinées ou traitées comme des entiers sur 32 bits. Cela évite l'utilisation d'instructions de type MOV + ADD
séparément.
- Optimise le code dans les boucles de traitement de tableaux : En lecture de tableaux de caractères signés, SXTAB permet de combiner lecture, extension et
addition en une seule instruction, ce qui réduit le nombre de cycles nécessaires. C'est une instruction très précieuse dans des boucles critiques de performance.
- Une extension signée, donc avec préservation du bit de signe : Contrairement à l'instruction UXTAB, qui effectue une extension non signée, SXTAB préserve
le bit de signe de l'octet. Cela signifie que les valeurs négatives seront correctement interprétées lors de l'addition, évitant des erreurs de traitement.
- Compatible avec la logique de condition ARM : Le suffixe {cond} permet de rendre l'exécution conditionnelle selon le contexte du programme. Cela offre
une grande flexibilité, notamment dans des séquences de traitement conditionnel ou optimisé, sans avoir à recourir à des branchements.
- Instruction très efficace en termes de cycles d'exécution : Étant donné qu'elle combine trois opérations en une seule (rotation, extension, addition),
SXTAB permet de réduire la taille du code et d'améliorer la vitesse globale d'exécution, surtout dans les boucles ou les fonctions fréquemment appelées.
- Attention à bien cibler l'octet à étendre : L'option rotation ne modifie pas la valeur de Rm elle-même, mais spécifie quel octet doit être utilisé pour
l'extension. Une mauvaise configuration de la rotation peut donc conduire à étendre le mauvais octet, entraînant des résultats inattendus.
Dernière mise à jour : Dimanche, le 12 novembre 2017