Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:techinf:assembler:einfuehrung:start [22.07.2021 08:22] – sbel | faecher:informatik:oberstufe:techinf:assembler:einfuehrung:start [22.07.2021 09:45] (aktuell) – sbel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | {{ : | + | ~~NOTOC~~ |
+ | |||
+ | {{ : | ||
====== Einführung Assembler ====== | ====== Einführung Assembler ====== | ||
- | Das Hauptelement eines Computers ist der Mikroprozessor. Die Aufgabedes | + | ===== Was und warum? ===== |
+ | |||
+ | |||
+ | Das Hauptelement eines Computers ist der Mikroprozessor. Die Aufgabe des Mikroprozessors ist es, Daten zu manipulieren, | ||
Über ein **Leitungssystem (Bus)** kann der Prozessor Daten mit Speicher- und Peripheriebausteinen austauschen. | Über ein **Leitungssystem (Bus)** kann der Prozessor Daten mit Speicher- und Peripheriebausteinen austauschen. | ||
- | Fur die Verarbeitung der Daten verfügt er über einige interne Speicherplätze, | + | Für die Verarbeitung der Daten verfügt er über einige interne Speicherplätze, |
+ | |||
+ | {{ : | ||
Jedes Programm, das auf einem Computer ausgeführt wird, wird in viele kleine Einzelschritte zerlegt, die | Jedes Programm, das auf einem Computer ausgeführt wird, wird in viele kleine Einzelschritte zerlegt, die | ||
Zeile 23: | Zeile 30: | ||
Das ändert jedoch nichts am Umstand, dass die Darstellung für uns Menschen wenig intuitiv ist. | Das ändert jedoch nichts am Umstand, dass die Darstellung für uns Menschen wenig intuitiv ist. | ||
+ | |||
+ | |||
+ | |||
+ | Es gibt jedoch Anwendungsfälle in denen man sehr nah an der Hardware programmieren möchte oder muss - wann immer man Kontrolle darüber erlangen möchte, was der Prozessor genau macht. | ||
+ | |||
+ | Die **Assemblersprache** ist eine fast vollständige 1:1 Repräsentation der Maschinenbefehle des Prozessors, der **Assembler** kann Assemblerbefehle also direkt in Maschinensprache übersetzen - auf diese Weise ist es auch für uns Menschen möglich, dem Prozessor direkte Anweisungen zu geben. Assemblerbefehle bestehen meist aus 3 Buchstaben, den sogenannten **Mnemonics**. | ||
+ | |||
+ | Die folgende Grafik veranschaulicht die Situation: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ===== Anders denken... ===== | ||
+ | |||
+ | Mit Hilfe von Assemblerbefehlen kann ein Ausdruck wie | ||
+ | |||
+ | sum = a + b + c | ||
+ | |||
+ | nicht direkt dargestellt werden, da sich die zur Verfügung stehenden Befehle daran orientieren, | ||
+ | |||
+ | mov eax,[a] ;Schreibe den Inhalt der Speicherzelle a ins Register eax | ||
+ | add eax,[b] ;Addiere den Inhalt der Speicherzelle b zum Inhalt des Registers eax (eax ist jetzt a+b) | ||
+ | add eax,[c] ;Addiere den Inhalt der Speicherzelle c zum Inhalt des Registers eax (eax ist jetzt a+b+c) | ||
+ | | ||
+ | Um uns an eine solche Problemlösestrategie zu gewöhnen, kann man ein Spiel spielen: https:// | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ===== Dateien ===== | ||
{{simplefilelist>: | {{simplefilelist>: |