Hallo, ich habe seit Neustem im Studium (Wirtschaftsinformatik) den Kurs Informatik I. Im Zuge der ersten Übungen sollen wir, bevor es mit Java los/weiter geht mit Assembler Code bzw. auch in Maschinensprache programmieren.
Eine unserer ersten Aufgaben lautet, die Formel x = (x-5) * (x+3) in Assembler Code zu übersetzen. Dafür haben wir eine kleine Tabelle mit Befehlen in der Assembler Sprache bekommen:
Die Zahlen vor den Befehlen sind für spätere Übersetzungen des Assembler Codes in Maschinensprache wobei Dezimalzahlen, also diese (27, 18, 03..) verwendet werden sollen.
Meine Frage an die, die Erfahrung mit Assemblercode haben wäre, ob folgende Lösung richtig ist. Ich bin hierbei den Term so angegangen, erst die Klammern zu "lösen" und anschließend die Berechneten x Werte zu multiplizieren.
Wenn die Infos nicht ausreichen, um die Frage zu beantworten bzw. noch andere Fragen aufkommen einfach Fragen, danke im Voraus ;)
Eine unserer ersten Aufgaben lautet, die Formel x = (x-5) * (x+3) in Assembler Code zu übersetzen. Dafür haben wir eine kleine Tabelle mit Befehlen in der Assembler Sprache bekommen:
- Define x y
- 27 Load x
- 18 Store x
- 03 Add c
- 07 AddMem x
- 05 Mult c
- 09 MultMem x
Die Zahlen vor den Befehlen sind für spätere Übersetzungen des Assembler Codes in Maschinensprache wobei Dezimalzahlen, also diese (27, 18, 03..) verwendet werden sollen.
Meine Frage an die, die Erfahrung mit Assemblercode haben wäre, ob folgende Lösung richtig ist. Ich bin hierbei den Term so angegangen, erst die Klammern zu "lösen" und anschließend die Berechneten x Werte zu multiplizieren.
Code:
Define x 61 // Speicherzelle 61 wird x genannt Load 61 // x wird geladen Add -5 // -5 wird addiert Store 61 // x wird mit dem Wert -5 gespeichert Load 61 // x wird mit dem Wert -5 geladen Add 5 // es wird 5 addiert um x wieder "zurückzusetzen" Add 3 // 3 wird zu x addiert MultiMem 61 // x wird mit dem Inhalt der Speicherzelle 61 multipliziert, dieser ist noch der alte Wert des letzten Speicherns (-5) Store 61 // x wird gespeichert
Wenn die Infos nicht ausreichen, um die Frage zu beantworten bzw. noch andere Fragen aufkommen einfach Fragen, danke im Voraus ;)