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

Informatiker Board » Themengebiete » Theoretische Informatik » Akku- und Speichermaschine » 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 Akku- und Speichermaschine
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Shizmo
Tripel-As


images/avatars/avatar-69.gif

Dabei seit: 16.10.2015
Beiträge: 174

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

So, eine habe ich noch großes Grinsen

Zitat:
Für zwei vorzeichenlose Zahlen [latex]Z1 = A*2^{16}+B, Z2 = C*2^{16}+D[/latex]
soll der mathematische Ausdruck [latex]E = A*C*2^{32} + (B*C+A*D)*2^{16} + B*D[/latex]
  1. mit einer Akku-Maschine: LOAD x, STORE x, ADD x, MULT x, SHL i
  2. mit einer Speicher-Maschine: ADD x, y, z, MULT x, y, z, SHL x, y, i
unter ausschließlicher Verwendung der jeweils angegebenen Opcodes berechnet werden.

i ist ein Immediate-Wert (z.B. 16).
Wir nehmen an, dass die Speicherstellen (A - E) und der Akku alle Ergebnisse aufnehmen können. Zwischenergebnisse können in zusätzlichen Speicherstellen ab F gespeichert werden. Sie sollten die Anzahl der Stores jedoch minimal halten.

Geben Sie jeweils den Assembler Code zur Berechnung obigen Ausdruckes an. Vergleichen Sie die Anzahl der Instruktionen und der notwendigen Speicherzugri ffe.


Schritt für Schritt.
Erstmal nur die Akku-Maschine.

SHL ist soweit ich weiß Shift-Left, was kann ich damit bewirken?

Kann ich damit die "Zahlen" aufteilen oder so?

LG
04.01.2016 22:20 Shizmo ist offline Beiträge von Shizmo suchen Nehmen Sie Shizmo in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

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

Wenn du eine Zahl um 16 nach links shiftest, ist das das selbe wie sie mit [latex]2^{16}[/latex] zu multiplizieren.

__________________
Syntax Highlighting fürs Board (Link)
05.01.2016 07:20 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Shizmo
Tripel-As


images/avatars/avatar-69.gif

Dabei seit: 16.10.2015
Beiträge: 174

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

Aha verwirrt

Was bringt mir das? geschockt
05.01.2016 22:12 Shizmo ist offline Beiträge von Shizmo suchen Nehmen Sie Shizmo in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

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

LOAD A
LOAD C
MULT //A*C
SHL 32 //A*C*2^32 - das ist der erste Summand von E

__________________
Syntax Highlighting fürs Board (Link)
06.01.2016 06:40 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Shizmo
Tripel-As


images/avatars/avatar-69.gif

Dabei seit: 16.10.2015
Beiträge: 174

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

Ah okay, Großartig großes Grinsen - Aber laut meinen Unterlagen würde bei dir A durch C überschrieben werden, da man nur einmal loaden darf, aber ich denke so dürfte dass dann hinkommen oder?

LOAD A
MULT C
SHL 32
STORE F

LOAD B
MULT C
STORE G

LOAD A
MULT D
ADD G
SHL 16
STORE G

LOAD B
MULT D
ADD G
ADD F
STORE F

Anzahl der Instruktionen wären es 17 und Speicherzugriffe 4.

Also das wäre jetzt [latex]E[/latex] - für was brauche ich Z1 und Z2??

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Shizmo: 06.01.2016 23:31.

06.01.2016 23:29 Shizmo ist offline Beiträge von Shizmo suchen Nehmen Sie Shizmo in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

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

Sieht gut aus.
Z1 und Z2 ist die Eingabe, darüber musst du dir keine Gedanken machen.

Je nach Kosten für Addition und Multiplikation kannst du es auch mit 3 Multiplikationen lösen. Siehe Karatsuba.

__________________
Syntax Highlighting fürs Board (Link)
07.01.2016 06:57 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Shizmo
Tripel-As


images/avatars/avatar-69.gif

Dabei seit: 16.10.2015
Beiträge: 174

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

Okay super, morgen mach ich weiter mit der Speichermaschine.

Wieso steht Z1 und Z2 dann überhaupt in der Angabe?
Also wir müssen solche Aufgaben immer an der Tafel vortragen und dann auch erklären, deshalb die Frage Zunge raus
09.01.2016 20:38 Shizmo ist offline Beiträge von Shizmo suchen Nehmen Sie Shizmo in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

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

Stelle dir einfach vor, du hast 32Bit große Zahlen, aber der Prozessor kann nur 16Bit auf einmal rechnen. Da musst du die Rechnung aufteilen.

__________________
Syntax Highlighting fürs Board (Link)
10.01.2016 09:23 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Shizmo
Tripel-As


images/avatars/avatar-69.gif

Dabei seit: 16.10.2015
Beiträge: 174

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

Alles klar okay danke, ich habs jetzt mal aufgeteilt und Z1 mit Z2 multipliziert und spare mir dadurch 8 Instruktionen, so sollte es doch auch passen oder? (Immer noch Akkumaschine)

LOAD A
SHL 16
ADD B
STORE F

LOAD C
SHL 16
ADD D

MULT F
STORE F

Wären dann nur 9 Instruktionen und 2 Speicherzugriffe.
10.01.2016 10:53 Shizmo ist offline Beiträge von Shizmo suchen Nehmen Sie Shizmo in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

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

Bleibt eben die Frage, ob deine Zielarchitektur die Multiplikation zweier 32Bit Zahlen unterstützt.
Wenn sie das tut, geht das.

__________________
Syntax Highlighting fürs Board (Link)
10.01.2016 13:20 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Shizmo
Tripel-As


images/avatars/avatar-69.gif

Dabei seit: 16.10.2015
Beiträge: 174

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

So jetzt musst du mir aber trotzdem noch helfen mit der Speicher-Maschine. Also da ich da ja keinen LOAD und STORE befehl habe, brauche ich es nicht laden und die Speicher-Maschine kann es wahrscheinlich zwischenspeichern.
Aber wie gehe ich da vor?
10.01.2016 17:24 Shizmo ist offline Beiträge von Shizmo suchen Nehmen Sie Shizmo in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

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

Da bin ich raus, mit dem Begriff Speichermaschine kann ich gar nichts anfangen.

__________________
Syntax Highlighting fürs Board (Link)
10.01.2016 17:34 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Shizmo
Tripel-As


images/avatars/avatar-69.gif

Dabei seit: 16.10.2015
Beiträge: 174

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

Okay, vielen Dank trotzdem für deinen Einsatz!! Daumen hoch
10.01.2016 17:36 Shizmo ist offline Beiträge von Shizmo suchen Nehmen Sie Shizmo in Ihre Freundesliste auf
Shizmo
Tripel-As


images/avatars/avatar-69.gif

Dabei seit: 16.10.2015
Beiträge: 174

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

Noch als Ergänzung, mit Speichermaschine ist eine Register-Register Maschine gemeint.

Also:

SHL E A 16
ADD F E B

SHL E C 16
ADD G E D

MULT E F G

LG Augenzwinkern
12.01.2016 13:07 Shizmo ist offline Beiträge von Shizmo suchen Nehmen Sie Shizmo in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » Akku- und Speichermaschine