For faster navigation, this Iframe is preloading the Wikiwand page for NOP.

NOP

NOP, mnémonique pour No Operation (en français : « aucune opération »), est une instruction assembleur disponible pour divers processeurs (par exemple 6502, famille 68000, famille x86, la plupart des processeurs RISC).

Description

[modifier | modifier le code]

L'instruction NOP est une instruction de base de beaucoup de processeurs, qui consiste simplement à ne rien faire. L'utilité principale de cette instruction est d'attendre un cycle, par exemple pour permettre à une instruction précédente dans le pipeline de se terminer et ainsi pouvoir utiliser son résultat, ou bien attendre la résolution d'un branchement.

Cette instruction est également utilisée dans les processeurs VLIW afin de combler les slots vides d'un mot d'instruction (ou bundle).

Il est fréquent, notamment dans certaines familles de processeurs RISC, que ce mnémonique soit une pseudo-instruction, que l'assembleur remplace par une instruction équivalente. Par exemple, l'instruction OR r0, r0, r0 n'aura aucun effet sur la valeur de r0 (un OU logique avec la même valeur), ne dure qu'un cycle, et sera donc équivalente à un NOP. Dans certaines architectures dont le registre r0 est câblé à la valeur zéro, la pseudo-instruction NOP en tire parti et effectue une affectation dans ce registre, ce qui n'a donc aucun effet.

L'instruction NOP est une instruction de base des processeurs x86. Elle fut implémentée sur le premier processeur de cette famille, le 8086.

L'instruction NOP ne fait rien si ce n'est incrémenter le pointeur d'instruction (EIP) et s'insère dans le flot d'instructions sans rien changer au contexte du processeur. NOP est un alias pour l'instruction XCHG (E)AX, (E)AX.

Opcode Instruction Description
90 NOP Ne fait aucune opération.

Le rôle d'une telle instruction est de remplir un espace prévu pour du code mais non utilisé afin d'éviter de décaler le restant du code, ou bien pour supprimer l'exécution de certaines instructions. Elle est codée sur un seul octet afin de pouvoir remplir toute taille de zone mémoire.

Aucun drapeau du registre EFLAGS n'est affecté par cette instruction.

Exceptions produites

[modifier | modifier le code]

Cette instruction ne produit aucune exception et ceci dans aucun des trois modes de fonctionnement du processeur x86 (Mode réel, Mode virtuel 8086, Mode protégé).

Articles connexes

[modifier | modifier le code]
{{bottomLinkPreText}} {{bottomLinkText}}
NOP
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?