Assembling Pi

B.3 Implementierung systemnaher Funktionen

3.1.2 Systemnahe Funktionen: Übungsaufgaben zur Implementierung von Speicherfunktionen in ARM-Assembly

Diese Übungsaufgaben zielen darauf ab, grundlegende Speicherfunktionen (memset, memcpy, memcmp) in einem Sourcefile namens kmem.szu implementieren. Entsprechende Änderungen sind in build.sh vorzunehmen.

Aufgabe 1: Implementierung der Funktion memset

Ziel: Schreiben Sie eine Funktion namens memset, die einen Speicherbereich mit einem bestimmten Wert initialisiert.

Beschreibung: Die Funktion memset setzt eine gegebene Anzahl von Bytes (size) ab einer bestimmten Speicheradresse (ptr) auf einen festgelegten Wert (initval).

Aufgabe 2: Implementierung der Funktion memcpy

Ziel: Schreiben Sie eine Funktion namens memcpy, die Daten von einer Quelladresse zu einer Zieladresse kopiert.

Beschreibung:

Die Funktion memcpy kopiert eine bestimmte Anzahl von Bytes von einer Quelladresse zu einer Zieladresse. Die Kopie erfolgt in aufsteigender Reihenfolge, es sei denn, die Zieladresse liegt nach der Quelladresse und die Bereiche überschneiden sich. In diesem Fall wird in absteigender Reihenfolge kopiert, um zu verhindern, dass bereits kopierte Daten die noch zu kopierenden Bytes überschreiben, was zu Datenkorruption führen würde.

Aufgabe 3: Implementierung der Funktion memcmp

Ziel: Schreiben Sie eine Funktion namens memcmp, die zwei Speicherbereiche miteinander vergleicht.

Beschreibung: Die Funktion memcmp vergleicht zwei Speicherbereiche (src1 und src2) der Größe (size) byteweise. Sie gibt an, ob die Speicherbereiche identisch sind oder sich unterscheiden. Bei einem Unterschied wird 0 zurückgegeben, ansonsten wird 1 zurückgegeben.

Anforderungen:

zurück Hauptmenü weiter
3.1 Systemnahe Funktionen
3.1.1 Implementierung systemnaher Funktionen
3.1.2 Implementierung von Speicherfunktionen in ARM-Assembly
3.1.3 Implementierung von Zahlendarstellungsfunktionen
3.1.4 Grundlegende Grafikbibliothek
3.1.5 Implementierung von Funktionen zur Verwaltung des Textmodus
3.1.6 Textdarstellung via Textmode
3.1.7 Implementierung einer kwrite-Funktion
3.1.8 Implementierung einer Eingabefunktion
3.1.9 Implementierung einer formatierenden Ausgabefunktion in ARM-Assembly
3.1.10 Implementiere kscan für formatiertes Einlesen