<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Nulloperation</id>
	<title>Nulloperation - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Nulloperation"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Nulloperation&amp;action=history"/>
	<updated>2026-05-24T15:26:45Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Nulloperation&amp;diff=2500000&amp;oldid=prev</id>
		<title>176.95.43.230: NOPs sind teilweise Workarounds fuer Errata in Prozessoren und Controller.</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Nulloperation&amp;diff=2500000&amp;oldid=prev"/>
		<updated>2024-11-10T01:28:37Z</updated>

		<summary type="html">&lt;p&gt;NOPs sind teilweise Workarounds fuer Errata in Prozessoren und Controller.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Die &amp;#039;&amp;#039;&amp;#039;Nulloperation&amp;#039;&amp;#039;&amp;#039; ({{enS|No Operation}}; Assembler-Mnemonic: &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;NOP&amp;lt;/span&amp;gt; oder &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;NOOP&amp;lt;/span&amp;gt;) ist ein Befehl –&amp;amp;nbsp;genauer eine [[Anweisung (Programmierung)|Prozessoranweisung]]&amp;amp;nbsp;– in [[Maschinenprogramm]]en oder [[Kommunikationsprotokoll]]en, der nichts bewirkt.&lt;br /&gt;
&lt;br /&gt;
== Prozessoranweisung ==&lt;br /&gt;
Auf einem [[Mikroprozessor]] bewirkt das Ausführen einer &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;NOP&amp;lt;/span&amp;gt;-Instruktion nichts, außer dem Inkrementieren des [[Befehlszähler]]s und dem Zeitverbrauch für das Holen dieses Befehls aus dem Arbeitsspeicher und seiner Interpretation. Der [[Opcode]] der Instruktion ist zwischen einem und neun Bytes lang.&lt;br /&gt;
&lt;br /&gt;
Auf [[x86-Architektur|x86-kompatiblen]] [[Prozessor]]en ist die ursprüngliche Variante der ein Byte lange &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;NOP&amp;lt;/span&amp;gt;-Befehl mit dem Opcode &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;0x90&amp;lt;/span&amp;gt;, der ein Alias für &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;XCHG (E)AX, (E)AX&amp;lt;/span&amp;gt;, d.&amp;amp;nbsp;h. dem Austausch des [[Register (Prozessor)|Registerwertes]] mit sich selbst, ist und auf allen [[x86-Prozessor]]en implementiert ist. Die Multi-Byte-Variante wird ggf. nicht von allen Prozessoren unterstützt.&lt;br /&gt;
&lt;br /&gt;
Der Befehl wird verwendet, um&lt;br /&gt;
&lt;br /&gt;
* ein bestimmtes [[Speicherausrichtung|Alignment]] im Speicher herzustellen,&lt;br /&gt;
* bestehende Befehle im direkten Maschinencode zu „löschen“, indem sie mit &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;NOP&amp;lt;/span&amp;gt;-Befehlen überschrieben werden,&lt;br /&gt;
* eine – normalerweise allerdings nur grob vorhersagbare – Zeitverzögerung zu bewirken (ggf. in einer [[Schleife (Programmierung)|Schleife]] mehrfach aufgerufen), beispielsweise um durch [[Race Condition]]s ausgelöste Fehler zu vermeiden oder das &amp;#039;&amp;#039;Timing&amp;#039;&amp;#039; eines externen Signals zu definieren,&lt;br /&gt;
* [[Pipeline-Hazard]]s zu verhindern,&lt;br /&gt;
* einen [[Branch Delay Slot]] zu füllen oder&lt;br /&gt;
* als „Füllmaterial“ bei nicht genutztem Speicher (z.&amp;amp;nbsp;B. [[BIOS]], [[Festwertspeicher|ROMs]] oder [[Eingebettetes System|eingebetteten Systemen]]).&lt;br /&gt;
* als „Füllmaterial“ um bei [[Exploit]]s durch einen [[Pufferüberlauf|Overflow]] eine bessere Trefferquote zu erzielen.&lt;br /&gt;
* um ggf. Errata im Controller zu umgehen&lt;br /&gt;
&lt;br /&gt;
== Befehl in Kommunikationsprotokollen ==&lt;br /&gt;
In folgenden Kommunikationsprotokollen ist ein &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;NOOP&amp;lt;/span&amp;gt;-Befehl implementiert. Der [[Server]] antwortet auf den &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;NOOP&amp;lt;/span&amp;gt;-Befehl mit einer Statusrückmeldung. Somit kann der Befehl unter anderem verwendet werden, um in Phasen längerer Inaktivität zu prüfen, ob weiterhin eine Verbindung besteht.&lt;br /&gt;
&lt;br /&gt;
* [[Telnet]]&amp;lt;ref&amp;gt;{{RFC-Internet |RFC=2060 |Titel=Telnet |Datum=}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[File Transfer Protocol|FTP]]&lt;br /&gt;
* [[Simple Mail Transfer Protocol|SMTP]]&lt;br /&gt;
* [[X Window System|X11]]&lt;br /&gt;
* [[Post Office Protocol|POP3]]&lt;br /&gt;
* [[Network News Transfer Protocol|NNTP]]&lt;br /&gt;
* [[Finger (Internetprotokoll)|Finger]]&lt;br /&gt;
* [[Internet Message Access Protocol|IMAP4]]&lt;br /&gt;
* [[BitTorrent]]&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[HLT (Maschinenbefehl)]]&lt;br /&gt;
* [[IEFBR14]] (als Beispiel für einen „leeren“ Befehl auf anderer Ebene)&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* [http://www.intel.de/content/www/us/en/processors/architectures-software-developer-manuals.html Intel 64 and IA-32 Architectures Software Developer Manuals.] intel.de&lt;br /&gt;
* [http://developer.amd.com/resources/documentation-articles/developer-guides-manuals/#manuals Developer Guides &amp;amp; Manuals.] AMD Developer Central.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Assembler]]&lt;br /&gt;
&lt;br /&gt;
[[fr:NOP]]&lt;br /&gt;
[[sv:NOP]]&lt;/div&gt;</summary>
		<author><name>176.95.43.230</name></author>
	</entry>
</feed>