In diesem Kurs lernt ihr, die Grundlagen der Programmierung von RISC-V Assembler. Ihr werdet Programme entwickeln, die unter Linux auf einem RISC-V-Board oder in einem RISC-V-Simulator laufen. Der Kurs bietet einen anwendungsnahen Einstieg in das Thema Assembler mit RISC-V.
Es werden die folgenden Inhalte behandelt:
Einrichtung einer Toolchain und Entwicklungsumgebung für die Programmierung von Linux-Anwendungen mit RISC-V-Assembler
Verstehen und Anwenden der RISC-V User-Level ISA
Basisbefehle und Pseudobefehle mit RISC-V Assembler
Assembleranweisungen für den GNU Assembler
Grundlagen der Programmierung mit Assembler für Kontrollstrukturen wie Schleifen, Funktionen, Bedingungen, Rekursiven
Nutzung von Systemaufrufen
Beachtung des Application Binary Interface
Programmierung von Input- und Output über die Konsole
Aufruf von externen Funktionen der Standard-C-Bibliothek, z.B. zum Einlesen von Dateien
Nutzung der Fließkomma-Erweiterung
Neben dem üblichen HelloWorld-Programm werden Beispielprogramme umgesetzt, um das Verständnis von Arbeiten mit Registern, Speicher, Kontrollstrukturen, einfachen Datenstrukturen und Systemaufrufen zu vermitteln.
Die Beispielprogramme werden vom Grund auf entwickelt. Diese Programme sind das
Einlesen einer Zahl in hexadezimaler Darstellung über die Console als ASCII-String, deren Umwandlung und Ausgabe als Zahl in dezimaler Darstellung über die Console als ASCII-String,
Einlesen einer Datei mit Zahlen, der Sortierung der Zahlen und deren Ausgabe auf die Konsole,
Clustering von Daten aus einer Datei mit dem K-means-Verfahren.
Bei der Entwicklung der Programme werden die Grundlagen Stück für Stück an den Stellen eingeführt, an denen diese benötigt werden, um praktische und theoretische Inhalte zu verzahnen.