IJVM-Multiplikation?
hallo Leute,ich brauche bitte dringend eine Hilfe.
Geben Sie ein ISA-Programm (IJVM-Bytecode) an, welches zwei positive Zahlen multipliziert. Die
Operanden liegen hierbei in der lokalen Variable 1 und der lokalen Variable 2. Nach Ausführung Ihres
Programms soll das Ergebnis der Multiplikation in der lokalen Variable 3 liegen. Gehen Sie davon
aus, dass das Ergebnis der Multiplikation mit 32 Bit darstellbar ist. Die Werte der ersten beiden
lokalen Variablen dürfen durch Ihr Programm verändert werden. Geben Sie Ihr Programm in der
symbolischen Notation (bipush etc.) an, nicht in Binär- oder Hexadezimalschreibweise (0x10 etc.).
Beschreiben Sie in ein bis zwei Sätzen die Grundidee Ihres Programms.
1: ILOAD J
2: ILOAD K
3: IMUL
4: ISTORE i
5: ILOAD i
6: BIPUSH 3
Und bei welchem Schritt brauchst Du Hilfe?
Sollte die ISA keine Multiplikation kennen, dann überführt man sie auf Addition.
ich habe folgende gemacht aber weiss nicht ob es korrekt und komplet ist
1 Antwort
Humm, also ich würde mit iload_0, iload_1 und imul anfangen - unter der Annahme, daß mit Variable 1 und Variable 2 die ersten beiden lokalen Variablen gemeint sind. (Die Aufgabe ist hier nicht so ganz eindeutig).
Eigentlich sollTe danach (IMHO) ein ISTORE_2 folgen (also in der 3. Variablen, egal wie sie heißt, abgelegt werden9.
Gegenfrage, wozu das weitere LOAD un PUSH?, soll da noch ein Return sein?