Maschinensprache (registermaschine)

Neue Frage »

Auf diesen Beitrag antworten »
wemo10 Maschinensprache (registermaschine)

Meine Frage:
Hey ich hab bald eine Klausur und unterem ist eines der Teilgebiete Maschinensprache. ich verstehe allerdings nur Bahnhof und weiß beim besten willen nicht wie ich diese art von aufgaben angehen geschweige denn lösen soll.
Hilfe!

Meine Ideen:
Ich hab leider so gar keine und ich werde so langsam panisch....
 
Auf diesen Beitrag antworten »
Gramo

Bei diesem Maschinenmodell existieren insgesamt 4 Register: Program Counter (Befehlszähler) PC, Akkumulator ACC, sowie die beiden Indexregister IN1 und IN2. Der Befehlszähler PC zeigt auf die Speicheradresse des derzeitigen bzw. nächsten auszuführenden Befehls. Weiterhin können Speicherstellen S0..Sn angesprochen werden.

Du musst den Programmablauf Schritt für Schritt durchgehen.

code:
1:
LOAD 0
Lädt den Akkumulator ACC mit dem Inhalt der Speicherstelle 0

code:
1:
MOVE ACC, IN1
Dem Indexregister IN1 wird der Wert des Akkumulators ACC zugewiesen.

code:
1:
LOAD 0
Lädt ACC erneut.

code:
1:
SUBI 1
Subrahiert 1 von Inhalt des Akkumulators.



Versuch jetzt mal die restlichen Befehle zu deuten.
Auf diesen Beitrag antworten »
eulerscheZahl

Ui, ein neuer Mitstreiter smile
Ist zwar kaum zu erkennen wegen des Bleistifts, aber wemo hat glaube ich schon ungefähr verstanden, wie man vorgehen muss.

Ich habe mal einen Simulator zusammengetippt, das ist der Programmablauf:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
pc=1 (MOVE), acc=4, in1=0, in2=0, mem=(0=4)
pc=2 (LOAD), acc=4, in1=4, in2=0, mem=(0=4)
pc=3 (SUBI), acc=4, in1=4, in2=0, mem=(0=4)
pc=4 (STORE), acc=3, in1=4, in2=0, mem=(0=4)
pc=5 (MOVE), acc=3, in1=4, in2=0, mem=(0=3)
pc=6 (SUBI), acc=4, in1=4, in2=0, mem=(0=3)
pc=7 (JUMP), acc=2, in1=4, in2=0, mem=(0=3)
pc=1 (MOVE), acc=2, in1=4, in2=0, mem=(0=3)
pc=2 (LOAD), acc=2, in1=2, in2=0, mem=(0=3)
pc=3 (SUBI), acc=3, in1=2, in2=0, mem=(0=3)
pc=4 (STORE), acc=2, in1=2, in2=0, mem=(0=3)
pc=5 (MOVE), acc=2, in1=2, in2=0, mem=(0=2)
pc=6 (SUBI), acc=2, in1=2, in2=0, mem=(0=2)
pc=7 (JUMP), acc=0, in1=2, in2=0, mem=(0=2)
pc=8 (ENDE), acc=0, in1=2, in2=0, mem=(0=2)


Mit sowas lernt man nach meiner Erfahrung am besten umzugehen, wenn man sich einfach ein kleines Programm schreibt um damit etwas zu berechnen, z.B. die Summe aller Zahlen von 1 bis 10.

Im Anhang ist mein Simulator, falls du damit rumspielen willst.
Auf diesen Beitrag antworten »
wemo10

okay also dann

speichert store 0 den wert von subi und
move weist dem IN1 wieder den Wert des Akkumulators zu (den gleichen wie vorher?)
subi 2 zieht diesem wert dann wieder zwei ab und
jump> -6 springt sechs stellen hoch also zu move acc, IN1

und dann?!
 
Auf diesen Beitrag antworten »
eulerscheZahl

Das Ganze wiederholt sich, bis im Akkumulator keine positive Zahl mehr steht.
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »