www.wikidata.de-de.nina.az
Die Nulloperation englisch No Operation Assembler Mnemonic NOP oder NOOP ist ein Befehl genauer eine Prozessoranweisung in Maschinenprogrammen oder Kommunikationsprotokollen der nichts bewirkt Inhaltsverzeichnis 1 Prozessoranweisung 2 Befehl in Kommunikationsprotokollen 3 Siehe auch 4 Literatur 5 EinzelnachweiseProzessoranweisung BearbeitenAuf einem Mikroprozessor bewirkt das Ausfuhren einer NOP Instruktion nichts ausser dem Inkrementieren des Befehlszahlers und dem Zeitverbrauch fur das Holen dieses Befehls aus dem Arbeitsspeicher und seiner Interpretation Der Opcode der Instruktion ist zwischen einem und neun Bytes lang Auf x86 kompatiblen Prozessoren ist die ursprungliche Variante der ein Byte lange NOP Befehl mit dem Opcode 0x90 der ein Alias fur XCHG E AX E AX d h dem Austausch des Registerwertes mit sich selbst ist und auf allen x86 Prozessoren implementiert ist Die Multi Byte Variante wird ggf nicht von allen Prozessoren unterstutzt Der Befehl wird verwendet um ein bestimmtes Alignment im Speicher herzustellen bestehende Befehle im direkten Maschinencode zu loschen indem sie mit NOP Befehlen uberschrieben werden eine normalerweise allerdings nur grob vorhersagbare Zeitverzogerung zu bewirken ggf in einer Schleife mehrfach aufgerufen beispielsweise um durch Race Conditions ausgeloste Fehler zu vermeiden oder das Timing eines externen Signals zu definieren Pipeline Hazards zu verhindern einen Branch Delay Slot zu fullen oder als Fullmaterial bei nicht genutztem Speicher z B BIOS ROMs oder eingebetteten Systemen als Fullmaterial um bei Exploits durch einen Overflow eine bessere Trefferquote zu erzielen Befehl in Kommunikationsprotokollen BearbeitenIn folgenden Kommunikationsprotokollen ist ein NOOP Befehl implementiert Der Server antwortet auf den NOOP Befehl mit einer Statusruckmeldung Somit kann der Befehl unter anderem verwendet werden um in Phasen langerer Inaktivitat zu prufen ob weiterhin eine Verbindung besteht Telnet 1 FTP SMTP X11 POP3 NNTP Finger IMAP4 BitTorrentSiehe auch BearbeitenIEFBR14 als Beispiel fur einen leeren Befehl auf anderer Ebene Literatur BearbeitenIntel 64 and IA 32 Architectures Software Developer Manuals intel de Developer Guides amp Manuals AMD Developer Central Einzelnachweise Bearbeiten RFC 2060 Telnet englisch Abgerufen von https de wikipedia org w index php title Nulloperation amp oldid 234749018