Assembleur 80x86 | NOP |
---|---|
INTEL 8088+, x86-64 | No OPeration |
Syntaxe
NOP |
Description
Cette instruction ne fait rien. Elle est utilisé lors de déboguage ou pour créer des délais d'attente artificielle sans affectation des registres du processeurs.
Remarques
- Cette instruction est énormément utilisé par les Hacker afin de remplacer le code de validation d'une protection anti-piratage par cette instruction. Elle est fort pratique, car elle n'occupe qu'un octet et on peut donc mettre plusieurs instructions NOP pour remplacer des instructions assembleurs prenant plusieurs octets comme un «CALL» ou un «JMP».
- On utilise parfois cette instruction pour permettre la détection de carte trop lente, comme certaines cartes vidéos 8 bits Paradise par exemple. Ainsi, après utilisation d'instruction «OUT DX,AL», on mettait deux instructions «NOP» pour laisser une chance à la carte de réagir. De plus, il s'agit de la seule façon de différencier les microprocesseurs 8088 et 8086 d'Intel de l'époque; aujourd'hui l'instruction CPUID corrige se problème.
- Qu'il s'agit d'une instruction NOP à un octet ou à plusieurs octets occupant de l'espace dans le flux d'instructions, elle n'affecte pas le contexte de la machine, à l'exception du registre EIP.
- Le fonctionnement de l'instruction est identique dans les modes non 64 bits et 64 bits.
Mnémonique
Instruction | Opcode | Description |
---|---|---|
NOP | 90h | Efface aucune opération |
Exception
Aucune
Exemple
L'exemple suivant permet de monter une utilisation type de cette instruction :
Références
Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 823
Assembleur Facile, Philippe Mercier, 1990, ISBN: 2-501-01176-7, page 412
AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions, Edition Advanced Micro Devices, Revision 3.14, September 2007, Publication No. 24594, page 177.
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2B: Instruction Set Reference, N-Z, Edition Intel, Mars 2010, Publication No. 253667-034US, page 13 à 14.