I datalogi er NOP eller NOOP (forkortelse for engelsk: " N o OP eration") en assemblersprogprocessorinstruktion eller protokolinstruktion , der instruerer at man ikke skal gøre noget.
Instruktionssættet for mange processorer indeholder en instruktion, hvis formål ikke er at ændre tilstanden af et register eller hukommelsesplacering , men at bruge et vist antal processorcyklusser. For de processorer, hvor der ikke er nogen speciel instruktion, efterlignes NOP af en anden instruktion med sådanne parametre, at registre og flag ikke ændres (for eksempel i SPARC-processorer anbefales instruktionen " sethi 0, %g0 " som NOP ) .
NOP'er er almindeligt anvendt:
Instruktion til Intel x86- kompatible processorer:
Faktisk er NOP-instruktionen for x86-processorer XCHG EAX, EAX eller XCHG AX,AX , som har den samme opkode 0x90 og har ingen effekt undtagen i følgende specielle tilfælde:
"NOP's spor" eller "NOP's springbræt" er en velkendt hackerteknik forbundet med udførelse af vilkårlig kode .
Den mest almindelige årsag til vilkårlig kodeudførelse er et bufferoverløb . Ofte kendes den adresse, der vil blive skrevet i stedet for returpunktet, kun tilnærmelsesvis. I dette tilfælde genereres følgende kode.
intet p intet p ... intet p intet p <ondsindet kode her>Efter at have skiftet til nogen af NOP'erne, vil processoren til sidst "rulle ned" til et ondsindet område.
Mange protokoller, såsom telnet , indeholder en NOP-kommando, som klienten kan sende for at få et svar fra serveren uden at gøre noget andet. NOOP-kommandoen er til stede i følgende mest kendte protokoller:
Mulige anvendelser for NOP-kommandoen: