Assemblercode zu Maschinencode?
Wie löse ich solche Aufgaben? Beispiel:
andi $t0, $a0, 15 zu Maschinencode in Binär und Dezimal,
Der Opcode wäre Binär 001100, also in Dezimal 12, da ich in der MIPS-Referenztabelle nachschauen kann, welchen Opcode jede Funktion hat:
Außerdem weiß ich bereits, dass der Immediate-Wert 15 ist. Aber wie lese ich auch $t0 und $a0 ab, wie komm ich darauf?
Ich habe außerdem eine Musterlösung für diese Aufgaben, kann sie mir aber selbst nicht erklären:
Besonders verstehe ich nicht ganz, wie man darauf kommen soll, was L2 und L1 bei Adresse 58 und Adresse 82 sein sollen. Danke im Voraus für jegliche Erklärung/Hilfe!
1 Antwort
Du schaust welcher Type der hat. In dem Fall von andi >> I-Format. OPCode|rs|rt|imm.
Dann guckst du in der GreenCard, welches Register welche Nummer hat
Also Name und dazugehörige Number. Und "meistens" nicht immer ist immediate der Offset, also in deinem Beispiel 15
Und randfrage: Hast du auch am Freitag einen Abschlusstest xD???
![- (Prozessor, CPU, Assembler)](https://images.gutefrage.net/media/fragen-antworten/bilder/535666288/0_big.png?v=1709128262000)
uff sorry für die späte antwort. Addresse für L1 bzw L2 ist bspsweise für L2 : Addresse vom Befehl = 58 Addresse VOR dem Label = 66 (ich habs mal irgendwo gelesen das bei labels man die addresse davor nimmt, könnte auch BS sein, aber meine rechnung sollte richtig sein xD)
Dann Zieladdresse - Addresse also 66 - 58 = 8 und dann durch 4 teilen weil 4 bit und dann kriegst du zwei heraus. Du kannst das gleiche mit L1 machen da kommt -9 raus ^^ und dir auch viel erfolg !!
Zieladdresse für L1 ist btw 46, nicht verwundern lassen, weil es dort nicht steht
Ich habs jetzt rausgefunden, danke! bloß check ich nun nicht was der Imm Wert für L2 und L1 ist.
Und haha ja XD Viel Erfolg!!