Syntaxe
Paramètres
| Nom |
Description |
| cond |
Ce paramètre optionnel permet d'indiquer le code de condition |
Description
Cette instruction permet de faire aucune opération.
Remarques
- Une instruction utile pour le remplissage ou l'alignement : L'instruction NOP est souvent utilisée pour remplir des espaces vides dans le code binaire,
par exemple pour aligner des instructions à des adresses mémoire spécifiques. Elle permet d'occuper un emplacement sans modifier l'état du processeur ni affecter les
registres.
- Elle peut servir à des modifications temporaires du code : Les développeurs insèrent parfois des NOP à la place d'instructions supprimées ou désactivées
pour du débogage, ou pour laisser une "place" à une future optimisation. Elle est donc couramment utilisée lors du développement ou des tests de performances.
- Utile pour les points d'arrêt logiciels ou le minuterie : Dans certains cas, NOP peut être utilisée pour délayer légèrement l'exécution, bien que ce
ne soit pas sa vocation principale. Par exemple, une séquence de NOP peut simuler un délai ou servir de point de repère dans le code pour un débogueur.
- NOP n'est pas toujours implémentée de façon explicite : Sur certaines architectures ARM, NOP est en réalité un alias d'une autre instruction, par
exemple MOV R0, R0. Cela permet de garantir la compatibilité binaire, tout en évitant d'ajouter une instruction spécifique dans l'ensemble de base.
- Elle respecte le code conditionnel, mais n'affecte rien : Le paramètre conditionnel {cond} est accepté, ce qui signifie que NOP peut être conditionnelle.
Par exemple, NOPNE ne s'exécutera que si la condition "not equal" est remplie. Cela offre une certaine souplesse dans le contrôle du flot sans effet secondaire.
- Peut aider à éviter certaines erreurs d'alignement ou d'ordonnancement : Lors d'une séquence d'instructions critiques (comme avec IT dans Thumb-2), il
peut être nécessaire d'ajouter une NOP pour respecter les contraintes syntaxiques de la pipeline ARM. Cela permet de corriger des erreurs de compilation ou d'exécution
discrètes.
- Instruction sans effet sur les registres, drapeaux ou mémoire : La spécificité principale de NOP est qu'elle n'a absolument aucun effet sur l'état du
processeur : elle ne modifie pas les registres, les drapeaux du PSR, ni la mémoire. Cela en fait une instruction totalement neutre, mais néanmoins stratégique dans
certains contextes.
- Très légère en termes de coût mais pas totalement gratuite : Même si NOP est légère, elle consomme tout de même un cycle CPU, comme toute instruction.
Dans des systèmes ultra-optimisés (temps réel, embarqué), cette consommation peut être non négligeable si elle est répétée ou mal utilisée.
Dernière mise à jour : Dimanche, le 12 novembre 2017