Akku- und Speichermaschine |
Shizmo
Tripel-As
Dabei seit: 16.10.2015
Beiträge: 174
|
|
Akku- und Speichermaschine |
|
So, eine habe ich noch
Zitat: |
Für zwei vorzeichenlose Zahlen
soll der mathematische Ausdruck
- mit einer Akku-Maschine: LOAD x, STORE x, ADD x, MULT x, SHL i
- 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 Speicherzugriffe. |
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
Tripel-As
Dabei seit: 16.10.2015
Beiträge: 174
|
|
Aha
Was bringt mir das?
|
|
05.01.2016 22:12 |
|
|
|
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 |
|
|
Shizmo
Tripel-As
Dabei seit: 16.10.2015
Beiträge: 174
|
|
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
|
|
09.01.2016 20:38 |
|
|
|
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 |
|
|
Shizmo
Tripel-As
Dabei seit: 16.10.2015
Beiträge: 174
|
|
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
Tripel-As
Dabei seit: 16.10.2015
Beiträge: 174
|
|
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
Tripel-As
Dabei seit: 16.10.2015
Beiträge: 174
|
|
Okay, vielen Dank trotzdem für deinen Einsatz!!
|
|
10.01.2016 17:36 |
|
|
Shizmo
Tripel-As
Dabei seit: 16.10.2015
Beiträge: 174
|
|
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
|
|
12.01.2016 13:07 |
|
|
|