<?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=Befehlssatz</id>
	<title>Befehlssatz - 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=Befehlssatz"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Befehlssatz&amp;action=history"/>
	<updated>2026-06-06T11:29:06Z</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=Befehlssatz&amp;diff=105720&amp;oldid=prev</id>
		<title>imported&gt;Pragma124 am 8. Juni 2024 um 13:30 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Befehlssatz&amp;diff=105720&amp;oldid=prev"/>
		<updated>2024-06-08T13:30:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Dieser Artikel|behandelt den Begriff der Informatik. Zum Begriff in der Grammatik siehe [[Imperativ (Modus)]].}}&lt;br /&gt;
&lt;br /&gt;
Der &amp;#039;&amp;#039;&amp;#039;Befehlssatz&amp;#039;&amp;#039;&amp;#039;, auch &amp;#039;&amp;#039;&amp;#039;Instruktionssatz&amp;#039;&amp;#039;&amp;#039; ({{enS|instruction set}}), eines [[Mikroprozessor|Prozessors]] ist in der [[Rechnerarchitektur]] die Menge der [[Maschinenbefehl]]e, die ein bestimmter Prozessor ausführen kann.&amp;lt;ref&amp;gt;Lothar Thiele: Technische Informatik, 2 - Instruktionssatz https://lectures.tik.ee.ethz.ch/ti1/slides/2.pdf Abgerufen am 8. Juni 2024.&amp;lt;/ref&amp;gt; Je nach Prozessor variiert der Umfang des Befehlssatzes zwischen beispielsweise 33 und über 500 Befehlen. [[Complex Instruction Set Computer|CISC]]-Prozessoren haben tendenziell größere Befehlssätze als [[Reduced Instruction Set Computer|RISC]]-Prozessoren, gleiches gilt für neuere Prozessoren gegenüber älteren Prozessoren.&lt;br /&gt;
&lt;br /&gt;
In erweitertem Sinn bezeichnet der Begriff „Befehlssatz“ den &amp;#039;&amp;#039;&amp;#039;Befehlsvorrat&amp;#039;&amp;#039;&amp;#039; (auch Synonym für „Befehlssatz“).&amp;lt;ref&amp;gt;Duden Informatik ISBN 3-411-05232-5&amp;lt;/ref&amp;gt;&lt;br /&gt;
== Eigenschaften ==&lt;br /&gt;
{{Quelle}}&lt;br /&gt;
Ein Befehlssatz heißt &amp;#039;&amp;#039;[[Orthogonalität (Informatik)|orthogonal]]&amp;#039;&amp;#039;, wenn jeder Befehl auch jede [[Adressierung (Rechnerarchitektur)|Adressierungsart]] des Prozessors verwenden kann. Unter der Adressierungsart eines Prozessors versteht man dabei die Art und Weise, wie ein Prozessor mittels Adressangaben, [[Speicheradresse|Offsets]] und [[Register (Computer)|Registerinhalten]] die effektive Adresse von Operanden berechnen kann.&lt;br /&gt;
&lt;br /&gt;
Ein Befehlssatz wird als &amp;#039;&amp;#039;symmetrisch&amp;#039;&amp;#039; bezeichnet, wenn alle [[Datentyp]]en und Adressierungsarten eines Befehls nicht nur für seine Quell-, sondern auch für seine Zieloperanden erlaubt sind. Die Datentypen eines Prozessors umfassen dabei alle Typen, die unmittelbar mittels Maschinenbefehlen (d.&amp;amp;nbsp;h. ohne eine softwaremäßige Emulation) bearbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
== Befehlsformate ==&lt;br /&gt;
[[Datei:Mips32 addi.svg|mini|352x352px|Eine [[MIPS-Architektur|MIPS32]] Instruktionskodierung für die Addition (&amp;#039;&amp;#039;addi&amp;#039;&amp;#039;) einer Binärzahl &amp;#039;&amp;#039;Immediate value&amp;#039;&amp;#039; mit dem Wert im Register &amp;#039;&amp;#039;Addr2&amp;#039;&amp;#039;. Das Ergebnis wird im Register &amp;#039;&amp;#039;Addr1&amp;#039;&amp;#039; gespeichert. &amp;#039;&amp;#039;Immediate&amp;#039;&amp;#039; bedeutet, dass Werte schon in der Instruktion enthalten sind und nicht erst aus einer Speicheradresse geladen werden müssen.]]&lt;br /&gt;
Die einzelnen Befehle ([[Datenwort|Datenworte]]) eines Befehlssatzes enthalten meist einen [[Opcode]] und einen oder mehrere Operanden; die Struktur und das Format dieser Angaben sind je Befehlstyp einheitlich festgelegt.&lt;br /&gt;
&lt;br /&gt;
Welcher Befehl gemeint ist, wird jeweils durch den Opcode spezifiziert. Die Breite der in einem Befehlssatz verwendeten Worte (d.&amp;amp;nbsp;h. Opcode/Operanden-Kombinationen) variiert je nach Prozessortyp deutlich. Sie kann insbesondere größer als die gewöhnlicher Speicherworte, d.&amp;amp;nbsp;h. als die Datenbusbreite des Prozessors, sein. In diesem Fall müssen die Befehle durch mehrere Speicherzugriffe aus dem Speicher in den Prozessor geladen werden.&lt;br /&gt;
&lt;br /&gt;
Diese „Zwei-Operanden-Befehlsform“ ist eine typische, aber nicht die einzig vorkommende. Es gibt daneben sowohl Prozessoren, die Befehle mit nur maximal einem Operanden zulassen, als auch solche, die bis zu drei Operanden erlauben. Bei einem einzelnen Operanden müssen alle Befehle, die auf zwei Größen wirken, als zweiten Operanden (implizit) ein prozessorinternes Register (z.&amp;amp;nbsp;B. den [[Akkumulator (Computer)|Akkumulator]]) verwenden. Die Drei-Operanden-Befehle unterscheiden nach Quelle, verknüpftem Wert und Resultatziel, so dass die Quelle nicht überschrieben werden muss.&lt;br /&gt;
&lt;br /&gt;
== Befehlsarten ==&lt;br /&gt;
Der Befehlssatz eines Mikroprozessors setzt sich grob aus wenigen Arten von Befehlen zusammen.&lt;br /&gt;
&lt;br /&gt;
Mit &amp;#039;&amp;#039;&amp;#039;Transferbefehlen&amp;#039;&amp;#039;&amp;#039; werden Daten innerhalb des Systems bewegt. Als Quelle und als Ziel kommen dabei Speicherstellen oder [[Register (Computer)|Prozessorregister]] in Frage. Die Daten werden dabei typischerweise nicht verändert und nur kopiert, d.&amp;amp;nbsp;h. bleiben an ihrem Quellort unverändert bestehen. Je nach Befehl und je nach Prozessortyp können dabei einzelne Bytes oder auch gleich mehrere auf einmal transportiert werden. Bei komplizierteren Adressierungsarten können sowohl für Quelle als auch Ziel zusätzliche Register und ggf. Berechnungen damit ins Spiel kommen, um z.&amp;amp;nbsp;B. per &amp;#039;&amp;#039;indizierter Adressierung&amp;#039;&amp;#039; tabellenförmig gespeicherte Daten abzuarbeiten oder ganze Speicherbereiche zu kopieren. Die Befehlsnamen gehen meist von den englischen Wörtern &amp;#039;&amp;#039;move&amp;#039;&amp;#039; (bewegen), &amp;#039;&amp;#039;load&amp;#039;&amp;#039; (laden), &amp;#039;&amp;#039;store&amp;#039;&amp;#039; (speichern) oder &amp;#039;&amp;#039;transfer&amp;#039;&amp;#039; aus.&lt;br /&gt;
&lt;br /&gt;
Mit Befehlen zur &amp;#039;&amp;#039;&amp;#039;Datenmanipulation&amp;#039;&amp;#039;&amp;#039; werden die Inhalte von Speicherzellen modifiziert (Beispiele: shift, convert)&amp;lt;ref name=&amp;quot;hub&amp;quot;&amp;gt;hu Berlin in {{Webarchiv|text=Technische Informatik 2: Befehlssatz: Eleganz vs. Effizienz (PDF; 166&amp;amp;nbsp;kB) |url=http://www2.informatik.hu-berlin.de/rok/ca/SS05/data/slides/ca08_Befehlssatz.pdf |wayback=20151130072013}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Arithmetische&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;logische Befehle&amp;#039;&amp;#039;&amp;#039; führen ebensolche Operationen an vorhandenen Werten durch. Hier wird also z.&amp;amp;nbsp;B. gerechnet, gezählt oder eine [[Konjunktion (Logik)|UND]]-Verknüpfung ausgeführt. Der Hauptoperand dabei ist sehr oft ein Prozessorregister (in den meisten Fällen der [[Akkumulator (Computer)|Akkumulator]]), aber nicht notwendigerweise. Ansonsten gilt für die Operanden das Gleiche wie bei den Transferbefehlen oben. Die Befehlsnamen sind meist englische Kürzel für die jeweilige Operation, wie z.&amp;amp;nbsp;B. &amp;#039;&amp;#039;ADD&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;AND&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ein-/Ausgabebefehle&amp;#039;&amp;#039;&amp;#039; dienen zum Lesen und Schreiben von Daten über [[Peripheriegerät]]e, die Verbindungsmedien zur „Außenwelt des Computers“.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Sprungbefehle&amp;#039;&amp;#039;&amp;#039; (auch Befehle zur &amp;#039;&amp;#039;&amp;#039;Programmkontrolle&amp;#039;&amp;#039;&amp;#039; genannt&amp;lt;ref name=&amp;quot;hub&amp;quot;/&amp;gt; oder auch zur &amp;#039;&amp;#039;&amp;#039;Programmsteuerung&amp;#039;&amp;#039;&amp;#039;) führen zu Verzweigungen innerhalb eines Programmablaufs, zum Bilden von [[Schleife (Programmierung)|Schleifen]], Reaktionen auf verschiedene Zahlenwerte und Aufruf von [[Unterprogramm]]en (Subroutinen). Hierbei unterscheidet man unbedingte Sprünge und bedingte Sprünge, wobei letztere typischerweise abhängig vom Zustand bestimmter Bits des Prozessor-Zustandsregisters einer Verzweigung folgen oder nicht. Die Befehlsnamen bauen meist auf den englischen Wörtern &amp;#039;&amp;#039;jump&amp;#039;&amp;#039; (springen) oder &amp;#039;&amp;#039;branch&amp;#039;&amp;#039; (verzweigen) auf.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Stack-Befehle&amp;#039;&amp;#039;&amp;#039; speichern Daten auf den [[Stapelspeicher|Stack]] (Befehlsname meist englisch &amp;#039;&amp;#039;push&amp;#039;&amp;#039;, für „(auf den Stapel) schieben“) oder holen Daten von dort zurück (Befehlsnamen &amp;#039;&amp;#039;pop&amp;#039;&amp;#039; oder auch &amp;#039;&amp;#039;pull&amp;#039;&amp;#039;, für „ziehen“). Dabei wird das [[Stackpointer]]-Register automatisch aktualisiert. Auch hier werden je nach Befehl und Prozessortyp ein oder mehrere Bytes auf einmal bewegt. Viele CPUs besitzen keine &amp;#039;&amp;#039;&amp;#039;Stack-Befehle&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Kombinierte Befehle&amp;#039;&amp;#039;&amp;#039; sind aus elementaren Aktionen der obigen Befehlsarten zusammengesetzt. Beispielsweise wird beim Aufruf einer Subroutine meist sowohl ein Sprung ausgeführt als auch die bisherige Programmadresse als Rücksprungziel auf dem Stack gespeichert. Manche Prozessoren unterstützen Zählschleifen z.&amp;amp;nbsp;B. durch Befehle, die sowohl einen Zählerstand herauf- oder herunterzählen, als auch bei Erreichen der Zählgrenze (z.&amp;amp;nbsp;B. Unterlauf beim Herabzählen auf Null) einen bedingten (Rück-)Sprung ausführen. Vor allem Befehle wie der letztere sind typisch für [[CISC]]-Prozessoren.&lt;br /&gt;
&lt;br /&gt;
== Befehlssatzarchitekturen ==&lt;br /&gt;
{{Hauptartikel|Befehlssatzarchitektur}}&lt;br /&gt;
Will man eine Familie von Prozessoren mit ähnlichem Befehlssatz zusammenfassen, so spricht man auch von einer [[Befehlssatzarchitektur]] (englisch &amp;#039;&amp;#039;Instruction Set Architecture&amp;#039;&amp;#039;, kurz: ISA). Verbreitete Befehlssatzarchitekturen sind beispielsweise:&lt;br /&gt;
&lt;br /&gt;
* [[IA-32]] (32-Bit-ISA der ursprünglichen 16-bittigen [[X86-Prozessor|x86-Architektur]]; auch die 64-Bit-Erweiterung [[x64]] ist IA-32 zuzuordnen)&lt;br /&gt;
* [[IA-64]] (die [[Itanium-Architektur]]; nicht zu verwechseln mit x64)&lt;br /&gt;
* [[ARM-Architektur|ARM]]&lt;br /&gt;
* [[Power-Architektur|Power]] und [[PowerPC]] (bzw. die [[Power Architecture Platform Reference|PAPR]]-Spezifikation)&lt;br /&gt;
* [[SPARC-Architektur|SPARC]]&lt;br /&gt;
* [[RISC-V]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
{{Wiktionary}}&lt;br /&gt;
* {{Webarchiv | url=http://cetusm.com/resources/cpuinfo.htm | wayback=20120707130400 | text=Great Microprocessors of the Past and Present (V 12.1.2)}} (englisch) – Überblick über Befehlssätze und Rechnerarchitekturen bei &amp;#039;&amp;#039;Computer Engineering Technology&amp;#039;&amp;#039;&lt;br /&gt;
* [http://www.embeddedexpert.com/processor/16_bit.html embedded 16-bit Mikrokontroller] – Seite bei &amp;#039;&amp;#039;EmbeddedExpert.com&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4129931-0}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Rechnerarchitektur]]&lt;br /&gt;
[[Kategorie:Compilerbau]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Pragma124</name></author>
	</entry>
</feed>