Hallo zusammen,
kann mir eventuell jemand bei der folgenden nervigen Aufgabe helfen ???
Schreiben Sie ein Programm in Assemblersprache zur Abarbeitung der Formel (a+b) * (a-b)
Als Operationen stehen Ihnen die Befehle LOAD, STORE, ADD, SUB, MUL zur Verfügung. Die Werte der Variablen a und b (jeweils 1 Byte) stehen in den Speicherzellen ab hex. A0. Eventuelle Hilfsgrößen sollen ab hex. B0 abgelegt werden. Das Ergebnis soll in hex. C0 stehen. Die Programmbefehle (je 2 Bytes) stehen in den Zellen ab hex. 00. Wie viele Bytes benötigt das Programm im Speicher (inkl. Daten und Hilfsgrößen)?
Also ich hab mir das jetzt wie folgt gedacht, da binomische Formel:
Im Arbeitsspeicher steht:
00 LOAD A0
01 MUL A0
03 STORE B0
00 LOAD A1
01 MUL A1
03 STORE B1
00 LOAD B0
02 SUB B1
03 STORE C0
ist das so ok oder fehlt da noch was??? und wieviele bytes hat das ding im Speicher?? wie kann ich denn das berechnen? Vielleicht weiß ja jemand von euch einen Lösungsansatz dazu - das wäre echt klasse..
WIN102, Aufgabe 4d
-
- Mitglied
- Beiträge: 14
- Registriert: 31.05.05 14:44
- Wohnort: Mannheim
Hmm, ich bin auch grade an dem Thema, hab das allerdings etwas anders angegangen als Du.
Bei mit sieht das so aus:
00 LOAD A1
01 MUL A1
02 STORE B0
03 LOAD A0
04 MUL A0
05 SUB B0
06 STORE C0
Hast Du schon was konkretes gefunden?
Bei mit sieht das so aus:
00 LOAD A1
01 MUL A1
02 STORE B0
03 LOAD A0
04 MUL A0
05 SUB B0
06 STORE C0
Hast Du schon was konkretes gefunden?
Das wäre (a*a)-(b*b)purple-haze hat geschrieben:Hmm, ich bin auch grade an dem Thema, hab das allerdings etwas anders angegangen als Du.
Bei mit sieht das so aus:
00 LOAD A1
01 MUL A1
02 STORE B0
03 LOAD A0
04 MUL A0
05 SUB B0
06 STORE C0
Hast Du schon was konkretes gefunden?
Außerdem braucht man 2 Speicherstellen für den Befehl.
00 LOAD A0
02 ADD A1
04 STORE B0
06 LOAD A0
08 SUB A1
0A MUL B0
0C STORE C0
-
- Neues Mitglied
- Beiträge: 4
- Registriert: 19.04.05 21:26
Hi purple-hazepurple-haze hat geschrieben:Hmm, ich bin auch grade an dem Thema, hab das allerdings etwas anders angegangen als Du.
Bei mit sieht das so aus:
00 LOAD A1
01 MUL A1
02 STORE B0
03 LOAD A0
04 MUL A0
05 SUB B0
06 STORE C0
Hast Du schon was konkretes gefunden?
Danke für deine Mail von heut morgen...
Mein Kollege war auch ganz verwuendert, wie klein die Welt ist....
komisch, die heißen auch noch gleich, dein Kollege und meiner..;-
)
Ich habe die Aufgaben schon zurück und folgendes wurde bei mir als richtig bewertet:
00 LOAD A0
02 ADD A1
04 STORE B0
06 LOAD A0
08 SUB A1
10 STORE B1
0A LOAD B0
0C MUL B1
0E STOR C0
Ich hoffe das hilft euch weiter!!
Wie gesgat benotet zurück ohne Fehler in dieser Aufgabe!
Gruß
Hypersonic79
00 LOAD A0
02 ADD A1
04 STORE B0
06 LOAD A0
08 SUB A1
-> 10 STORE B1
-> 0A LOAD B0
-> 0C MUL B1
0E STOR C0
Nicht notwendig, kann durch MUL B0 ersetzt werden.
02 ADD A1
04 STORE B0
06 LOAD A0
08 SUB A1
-> 10 STORE B1
-> 0A LOAD B0
-> 0C MUL B1
0E STOR C0
Nicht notwendig, kann durch MUL B0 ersetzt werden.
-
- Mitglied
- Beiträge: 14
- Registriert: 31.05.05 14:44
- Wohnort: Mannheim
Die Formel ist die 3. Binomische Formel. Und die ganzen Zwischenschritte brauche ich schlicht weg nicht. Aufgelöst lautet der String a² - b².
Schicke die Lösungen heute auch ein. Mal schauen was dabei raus kommt!
Und was ist a*a - b*b ?!?Das wäre (a*a)-(b*b)
Schicke die Lösungen heute auch ein. Mal schauen was dabei raus kommt!

(a*a)-(b*b) ist dasselbe wie a*a-b*b !!! Die Regel Punkt vor Strich sollte man schon kennen ,wenn man studiert!!!!
00 LOAD A0
02 ADD A1
04 STORE B0
06 LOAD A0
08 SUB A1
10 STORE B1
0A LOAD B0
0C MUL B1
0E STOR C0
das programm hat warscheinlich 23 bytes. Keine Ahnung ob das stimmt.
Pro befehl 2 bytes. 2*9=18
Pro a + b je 1 byte = 2
Je Store nochmal 3
hab ich da nen denkfehler fehlt da noch was?
02 ADD A1
04 STORE B0
06 LOAD A0
08 SUB A1
10 STORE B1
0A LOAD B0
0C MUL B1
0E STOR C0
das programm hat warscheinlich 23 bytes. Keine Ahnung ob das stimmt.
Pro befehl 2 bytes. 2*9=18
Pro a + b je 1 byte = 2
Je Store nochmal 3
hab ich da nen denkfehler fehlt da noch was?
-
- Forums-Profi
- Beiträge: 98
- Registriert: 09.10.05 14:53
- Wohnort: Elmshorn
Hallo,
je Befehl 2 Byte, macht bei 7 nötigen Befehlen 7 * 2 Byte = 14 Byte nur für die Befehle. Die Befehle werden wie folgt benötigt:
(LOAD = 2x, ADD = 1x, STORE =2x, SUB = 1x und MUL = 1x)
So, jetzt fehlen uns noch die beiden vorgegebenen Variablen zu je einem Byte. Macht also nocheinmal 2 Byte. Macht bis jetzt 14 + 2 Byte = 16 Byte.
Bei den Hilfsgrößen ist es nun so das nur eine Hilfsvariable benötigt wird (ich hatte auch zwei in meiner Variante, aber das war leider falsch. Es geht wirklich mit einer.)
Da unsere Variablen je ein Byte benötigen haben wir nun 16 + 1Byte = 17 Byte.
Bleibt nur noch unser Ergebnis (ist ja auch nur eine Variable) also noch ein Byte.
Also haben wir 17 + 1Byte = 18 Byte Fertig "HURA"
Gruß Andreas
je Befehl 2 Byte, macht bei 7 nötigen Befehlen 7 * 2 Byte = 14 Byte nur für die Befehle. Die Befehle werden wie folgt benötigt:
(LOAD = 2x, ADD = 1x, STORE =2x, SUB = 1x und MUL = 1x)
So, jetzt fehlen uns noch die beiden vorgegebenen Variablen zu je einem Byte. Macht also nocheinmal 2 Byte. Macht bis jetzt 14 + 2 Byte = 16 Byte.
Bei den Hilfsgrößen ist es nun so das nur eine Hilfsvariable benötigt wird (ich hatte auch zwei in meiner Variante, aber das war leider falsch. Es geht wirklich mit einer.)
Da unsere Variablen je ein Byte benötigen haben wir nun 16 + 1Byte = 17 Byte.
Bleibt nur noch unser Ergebnis (ist ja auch nur eine Variable) also noch ein Byte.
Also haben wir 17 + 1Byte = 18 Byte Fertig "HURA"
Gruß Andreas
ich denke du gehst von deinem programm aus oder?
da bei dem Programm das der Kollege angegeben hat 3x load ist ist doch die byte zahl auch hüher du hattes nur 2xmal load angegeben. Ausserdem ist 3 mal store das heisst ich hab 3 verschieden zahlen (je 1 byte).
oder nicht?
da bei dem Programm das der Kollege angegeben hat 3x load ist ist doch die byte zahl auch hüher du hattes nur 2xmal load angegeben. Ausserdem ist 3 mal store das heisst ich hab 3 verschieden zahlen (je 1 byte).
oder nicht?
-
- Forums-Profi
- Beiträge: 98
- Registriert: 09.10.05 14:53
- Wohnort: Elmshorn
Hallo,
ja sicher, Du hast schon Recht. Ja mehr Befele und Variablen um so höher auch die Bytezahl.
Aber so wie ich es hier geschrieben habe, ist die Anzahl der Befehle und Variablen schon um meinen eigenen Fehler bereinigt. Will sagen so wie es hier steht will der Korrektor die Lösung sehen.
Gruß Andreas.
ja sicher, Du hast schon Recht. Ja mehr Befele und Variablen um so höher auch die Bytezahl.
Aber so wie ich es hier geschrieben habe, ist die Anzahl der Befehle und Variablen schon um meinen eigenen Fehler bereinigt. Will sagen so wie es hier steht will der Korrektor die Lösung sehen.
Gruß Andreas.
hmm. Ich weiss auch nicht in der Aufgabe steht das man ein Programm schreiben soll. Es steht dann drin das man noch benennen soll wieviel byte benötigt wird.
Eigentlich steht nix von drin, dass das programm so wenig byte wie möglich haben muss. Obwohl es eigentlich schon am sinnvollsten wäre es mit so wenig Speicher wie möglich zu machen. Aber ob das dann gleich als falsch gewertet wird. Solang es funktioniert sollte es denen hoffentlich egal sein. Hab jetzt auch keinen Bock mehr mir weiter Gedanken zu machen. Ich schick das einfach so ab. Zeit ist Geld... Und mir läuft die Zeit davon... Scheisse warum müssen das auch so viele Hefte sein...
Eigentlich steht nix von drin, dass das programm so wenig byte wie möglich haben muss. Obwohl es eigentlich schon am sinnvollsten wäre es mit so wenig Speicher wie möglich zu machen. Aber ob das dann gleich als falsch gewertet wird. Solang es funktioniert sollte es denen hoffentlich egal sein. Hab jetzt auch keinen Bock mehr mir weiter Gedanken zu machen. Ich schick das einfach so ab. Zeit ist Geld... Und mir läuft die Zeit davon... Scheisse warum müssen das auch so viele Hefte sein...

-
- Forums-Profi
- Beiträge: 98
- Registriert: 09.10.05 14:53
- Wohnort: Elmshorn
Hi,
ja OK, Dein Einwand ist berechtigt.
Wenn das Programm funktioniert ist es wahrscheinlich egal wie viele Befehle und Variablen Du verwendest.
Andreas.
ja OK, Dein Einwand ist berechtigt.
Wenn das Programm funktioniert ist es wahrscheinlich egal wie viele Befehle und Variablen Du verwendest.

Andreas.
Übrigens wurde rals richtig bewertet. 23 bit ist ok. Es geht also nur darum ob das Programm läuft scheissegal ob es nun wenig oder viel bit hat.....
