Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Technische Informatik » Indexregister » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Indexregister
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
baker333
Grünschnabel


Dabei seit: 16.12.2018
Beiträge: 1

Indexregister Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hallo,

ich bin komplett neu in der Informatik und habe Probleme mit der ersten Selbsttestaufgabe des Studiums:

In Speicherzelle 0 steht die Startadresse und in Speicherzelle 1 steht die Länge eines Speicherbereichs, der kopiert werden soll. Die Startadresse des Zielbereichs steht in Speicherzelle 2. Skizzieren Sie ein Programm, d.h. eine Folge von Maschinenbefehlen, die den Speicherbereich kopiert. Hierbei sollen Lade? und Schreib-Befehle die Speicheradresse als Summe aus einem Registerinhalt und einer Konstanten (Offset) bilden. Alle Register können als Daten? oder als Adress-Register benutzt werden.

Meine Ideen:
Folgende Lösung wird angegeben. Im Skript wird lediglich vorher erklärt was es für Prozessorregister gibt. Wieso man allerdings R4 zu Anfang definiert ist mir völlig schleierhaft.

Herzlichen Dank!

Lösung

Subtrahiere R4 = R4 - R4
; R4 enthält jetzt Wert 0
Lade R1 mit dem Inhalt der Speicherzelle mit Adresse R4 + 0
; R1 enthält Inhalt der Speicherzelle 0
Lade R2 mit dem Inhalt der Speicherzelle mit Adresse R4 + 1
; R2 enthält Inhalt von Speicherzelle 1
Lade R3 mit dem Inhalt der Speicherzelle mit Adresse R4 + 2
; R3 enthält Inhalt von Speicherzelle 2
; die folgenden 6 Befehle bilden eine Schleife.
; R1 enthält stets die Adresse der aktuell zu kopierenden Speicherzelle
; R3 enthält stets die Ziel-Adresse der aktuell zu kopierenden Speicherzelle
; R2 enthält stets die noch verbleibende Anzahl von zu kopierenden Speicherzellen
Lade R5 mit dem Inhalt der Speicherzelle mit Adresse R1 + 0
; R5 enthält jetzt ein Element des Blocks
Speichere R5 in die Speicherzelle mit Adresse R3 + 0
; Schreibe Element an Zieladresse
Addiere R1 = R1 + 1
; erhöhe R1, d.h. zeigt auf nächstes Element des Blocks
Addiere R3 = R3 + 1
; erhöhe R3
Subtrahiere R2 = R2 - 1
; erniedrige R2, d.h. reduziere verbleibende Blocklänge
Springe um 6 zurück falls Ergebnis der Subtraktion nicht 0
; Falls Subtraktion nicht 0 ergibt, Rücksprung zu Lade R5...
16.12.2018 20:23 baker333 ist offline Beiträge von baker333 suchen Nehmen Sie baker333 in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Technische Informatik » Indexregister