<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://satyria.de/arm/index.php?action=history&amp;feed=atom&amp;title=Grundlegende_Befehle</id>
	<title>Grundlegende Befehle - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://satyria.de/arm/index.php?action=history&amp;feed=atom&amp;title=Grundlegende_Befehle"/>
	<link rel="alternate" type="text/html" href="https://satyria.de/arm/index.php?title=Grundlegende_Befehle&amp;action=history"/>
	<updated>2026-06-24T14:06:41Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in C und Assembler mit Raspberry</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://satyria.de/arm/index.php?title=Grundlegende_Befehle&amp;diff=524&amp;oldid=prev</id>
		<title>Satyria am 26. September 2024 um 06:15 Uhr</title>
		<link rel="alternate" type="text/html" href="https://satyria.de/arm/index.php?title=Grundlegende_Befehle&amp;diff=524&amp;oldid=prev"/>
		<updated>2024-09-26T06:15:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 26. September 2024, 07:15 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hier wird nur eine Auswahl von den wichtigsten Befehle gezeigt. Unter [[ARMv8-Übersicht]] werden mehr Informationen zum ARMv8 gegeben.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!-- &lt;/ins&gt;Hier wird nur eine Auswahl von den wichtigsten Befehle gezeigt. Unter [[ARMv8-Übersicht]] werden mehr Informationen zum ARMv8 gegeben.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;--&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Grundlegende Befehle für 64-BitAssembler ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Grundlegende Befehle für 64-BitAssembler ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Satyria</name></author>
	</entry>
	<entry>
		<id>https://satyria.de/arm/index.php?title=Grundlegende_Befehle&amp;diff=522&amp;oldid=prev</id>
		<title>Satyria am 26. September 2024 um 06:14 Uhr</title>
		<link rel="alternate" type="text/html" href="https://satyria.de/arm/index.php?title=Grundlegende_Befehle&amp;diff=522&amp;oldid=prev"/>
		<updated>2024-09-26T06:14:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 26. September 2024, 07:14 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Hier wird nur eine Auswahl von den wichtigsten Befehle gezeigt. Unter [[ARMv8-Übersicht]] werden mehr Informationen zum ARMv8 gegeben. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Grundlegende Befehle für 64-BitAssembler ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Grundlegende Befehle für 64-BitAssembler ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Satyria</name></author>
	</entry>
	<entry>
		<id>https://satyria.de/arm/index.php?title=Grundlegende_Befehle&amp;diff=521&amp;oldid=prev</id>
		<title>Satyria: /* Grundlegende Befehle für 64-BitAssembler */</title>
		<link rel="alternate" type="text/html" href="https://satyria.de/arm/index.php?title=Grundlegende_Befehle&amp;diff=521&amp;oldid=prev"/>
		<updated>2024-09-24T11:00:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Grundlegende Befehle für 64-BitAssembler&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://satyria.de/arm/index.php?title=Grundlegende_Befehle&amp;amp;diff=521&amp;amp;oldid=380&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Satyria</name></author>
	</entry>
	<entry>
		<id>https://satyria.de/arm/index.php?title=Grundlegende_Befehle&amp;diff=380&amp;oldid=prev</id>
		<title>Satyria am 2. September 2024 um 09:04 Uhr</title>
		<link rel="alternate" type="text/html" href="https://satyria.de/arm/index.php?title=Grundlegende_Befehle&amp;diff=380&amp;oldid=prev"/>
		<updated>2024-09-02T09:04:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://satyria.de/arm/index.php?title=Grundlegende_Befehle&amp;amp;diff=380&amp;amp;oldid=309&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Satyria</name></author>
	</entry>
	<entry>
		<id>https://satyria.de/arm/index.php?title=Grundlegende_Befehle&amp;diff=309&amp;oldid=prev</id>
		<title>Satyria: Die Seite wurde neu angelegt: „  Assembler-Befehle (auch als Instruktionen oder Maschinenbefehle bezeichnet) für ARM-Prozessoren wie die ARM Cortex-A76 oder den Broadcom BCM2712 (der auf ARM-Technologie basiert) basieren auf der ARMv8-A Architektur. Hier sind einige grundlegende Befehle, die in der ARMv8-A Assembler-Programmierung verwendet werden:  Datenverarbeitungsbefehle ADD (Addieren)   Copy ADD X0, X1, X2  ; X0 = X1 + X2 SUB (Subtrahieren)   Copy SUB X0, X1, X2  ; X0 = X1 - X2 M…“</title>
		<link rel="alternate" type="text/html" href="https://satyria.de/arm/index.php?title=Grundlegende_Befehle&amp;diff=309&amp;oldid=prev"/>
		<updated>2024-08-22T12:42:14Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „  Assembler-Befehle (auch als Instruktionen oder Maschinenbefehle bezeichnet) für ARM-Prozessoren wie die ARM Cortex-A76 oder den Broadcom BCM2712 (der auf ARM-Technologie basiert) basieren auf der ARMv8-A Architektur. Hier sind einige grundlegende Befehle, die in der ARMv8-A Assembler-Programmierung verwendet werden:  Datenverarbeitungsbefehle ADD (Addieren)   Copy ADD X0, X1, X2  ; X0 = X1 + X2 SUB (Subtrahieren)   Copy SUB X0, X1, X2  ; X0 = X1 - X2 M…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Assembler-Befehle (auch als Instruktionen oder Maschinenbefehle bezeichnet) für ARM-Prozessoren wie die ARM Cortex-A76 oder den Broadcom BCM2712 (der auf ARM-Technologie basiert) basieren auf der ARMv8-A Architektur. Hier sind einige grundlegende Befehle, die in der ARMv8-A Assembler-Programmierung verwendet werden:&lt;br /&gt;
&lt;br /&gt;
Datenverarbeitungsbefehle&lt;br /&gt;
ADD (Addieren)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
ADD X0, X1, X2  ; X0 = X1 + X2&lt;br /&gt;
SUB (Subtrahieren)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
SUB X0, X1, X2  ; X0 = X1 - X2&lt;br /&gt;
MUL (Multiplizieren)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
MUL X0, X1, X2  ; X0 = X1 * X2&lt;br /&gt;
DIV (Dividieren)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
UDIV X0, X1, X2  ; X0 = X1 / X2 (unsigned)&lt;br /&gt;
SDIV X0, X1, X2  ; X0 = X1 / X2 (signed)&lt;br /&gt;
Logische Befehle&lt;br /&gt;
AND (Bitweises UND)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
AND X0, X1, X2  ; X0 = X1 &amp;amp; X2&lt;br /&gt;
ORR (Bitweises ODER)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
ORR X0, X1, X2  ; X0 = X1 | X2&lt;br /&gt;
EOR (Exklusives ODER)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
EOR X0, X1, X2  ; X0 = X1 ^ X2&lt;br /&gt;
LSL (Logisches Schieben nach links)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
LSL X0, X1, #2  ; X0 = X1 &amp;lt;&amp;lt; 2&lt;br /&gt;
LSR (Logisches Schieben nach rechts)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
LSR X0, X1, #2  ; X0 = X1 &amp;gt;&amp;gt; 2&lt;br /&gt;
Speicherzugriffsbefehle&lt;br /&gt;
LDR (Laden)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
LDR X0, [X1]  ; Lade den Wert aus der Speicheradresse, die in X1 gespeichert ist, in X0&lt;br /&gt;
STR (Speichern)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
STR X0, [X1]  ; Speichere den Wert aus X0 in die Speicheradresse, die in X1 gespeichert ist&lt;br /&gt;
Bedingte Befehle&lt;br /&gt;
B (Bedingungsloser Sprung)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
B label  ; Springe zu einer bestimmten Marke (label)&lt;br /&gt;
BL (Bedingungsloser Sprung mit Link)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
BL label  ; Springe zu einer bestimmten Marke (label) und speichere die Rücksprungadresse&lt;br /&gt;
CBZ (Vergleiche und springe, wenn null)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
CBZ X0, label  ; Springe zu einer bestimmten Marke (label), wenn X0 null ist&lt;br /&gt;
CBNZ (Vergleiche und springe, wenn nicht null)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
CBNZ X0, label  ; Springe zu einer bestimmten Marke (label), wenn X0 nicht null ist&lt;br /&gt;
Vergleichsbefehle&lt;br /&gt;
CMP (Vergleichen)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
CMP X0, X1  ; Vergleiche X0 und X1 und setze die Statusflags entsprechend&lt;br /&gt;
CSEL (Bedingte Auswahl)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
CSEL X0, X1, X2, EQ  ; Wenn die Bedingung EQ (Equal) erfüllt ist, dann X0 = X1, sonst X0 = X2&lt;br /&gt;
Spezielle Befehle&lt;br /&gt;
NOP (No Operation)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
NOP  ; Führt keine Operation aus, nützlich für Timing oder Platzhalter&lt;br /&gt;
BRK (Breakpoint)&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
BRK #0  ; Erzeugt eine Debugging-Breakpoint-Ausnahme&lt;br /&gt;
Beispielcode&lt;br /&gt;
Hier ist ein einfacher ARMv8-A Assembler-Programmcode, der zwei Zahlen addiert und das Ergebnis speichert:&lt;br /&gt;
&lt;br /&gt;
 Copy&lt;br /&gt;
.section .data&lt;br /&gt;
value1: .word 5&lt;br /&gt;
value2: .word 10&lt;br /&gt;
result: .word 0&lt;br /&gt;
&lt;br /&gt;
.section .text&lt;br /&gt;
.global _start&lt;br /&gt;
&lt;br /&gt;
_start:&lt;br /&gt;
    LDR X1, =value1  ; Lade die Adresse von value1 in X1&lt;br /&gt;
    LDR X2, [X1]     ; Lade den Wert von value1 in X2&lt;br /&gt;
    LDR X1, =value2  ; Lade die Adresse von value2 in X1&lt;br /&gt;
    LDR X3, [X1]     ; Lade den Wert von value2 in X3&lt;br /&gt;
    ADD X4, X2, X3   ; Addiere die Werte und speichere das Ergebnis in X4&lt;br /&gt;
    LDR X1, =result  ; Lade die Adresse von result in X1&lt;br /&gt;
    STR X4, [X1]     ; Speichere das Ergebnis in result&lt;br /&gt;
    BRK #0           ; Beende das Programm&lt;/div&gt;</summary>
		<author><name>Satyria</name></author>
	</entry>
</feed>