Theoretische und technische Informatik - ganz praktisch - Letzte Aktivität in Assembler https://info2.aifb.kit.edu/qa/index.php?qa=activity&qa_1=assembler Powered by Question2Answer Beantwortet: Unmittelbare Adressierung https://info2.aifb.kit.edu/qa/index.php?qa=7291&qa_1=unmittelbare-adressierung&show=7294#a7294 <p>Hallo,</p><p>die unmittelbare Adressierung mittels "#" bedeutet nichts anderes, als dass du einfach das entsprechende Zeichen direkt aufrufst. In der getaggten Aufgabe (ASS-AF) wird also beispielsweise im Befehl <em>ADD #1&nbsp;</em>die Zahl 1 auf R2 drauf addiert. Genauso verhält es sich auch in der Assembler-Aufgabe aus Tut 6, wo über&nbsp;<em>SUBSTRACT, R1,&nbsp;#1, R1&nbsp;</em>die Variable R1 um 1 verringert wird und das Ergebnis wieder in R1 gespeichert wird.</p><p>Beste Grüße,&nbsp;</p><p>Martin (Tutor)</p> ASS-AF https://info2.aifb.kit.edu/qa/index.php?qa=7291&qa_1=unmittelbare-adressierung&show=7294#a7294 Wed, 03 Feb 2021 14:29:42 +0000 Antwort bearbeitet: Verständnis https://info2.aifb.kit.edu/qa/index.php?qa=6639&qa_1=verst%C3%A4ndnis&show=6646#a6646 Hallo,<br /> <br /> Die von die genannte Struktur $f(x)=x+(x-1)+(x-2)...$ ist korrekt und entspricht der in der Lösung gegeben Funktion $\sum\limits_{i=1}^N i$. Dafür kannst du beispielsweise f(4) berechnen. In deiner Form gilt f(4)=4+3+2+1=10 ,was offensichtlich äquivalent zu f(4)=1+2+3+4=10 nach der in der Musterlösung gegebenen Formel ist.<br /> <br /> Der letzet Umformungsschritt $\sum\limits_{i=1}^N i=\frac{(n+1)*n}{2}$ ist lediglich die Gaußsche Summenformel<br /> <br /> &nbsp;<br /> <br /> Ich hoffe das klärt deine Frage, weiterhin viel Erfolg beim lernen!<br /> <br /> Jannik (Tutor) ASS-AC https://info2.aifb.kit.edu/qa/index.php?qa=6639&qa_1=verst%C3%A4ndnis&show=6646#a6646 Sun, 03 Feb 2019 15:22:22 +0000 Beantwortet: a) ADD R2 https://info2.aifb.kit.edu/qa/index.php?qa=5536&qa_1=a-add-r2&show=5538#a5538 Hallo,<br /> <br /> Wenn du keine seperate Quelle gegeben hast, dann schaus du dir immer an, was momentan in deinem Akkumulator steht. Mit dieser Info solltest du die Aufgabe eigentlich hin bekommen. Eine ausführlichere Antword dazu findest du hier:<br /> <br /> <a href="http://info2.aifb.kit.edu/qa/index.php?qa=4196&amp;qa_1=verst%C3%A4ndnis" rel="nofollow" target="_blank">http://info2.aifb.kit.edu/qa/index.php?qa=4196&amp;qa_1=verst%C3%A4ndnis</a><br /> <br /> Ansonsten frag einfach nochmal.<br /> Liebe Grüße ASS-AD https://info2.aifb.kit.edu/qa/index.php?qa=5536&qa_1=a-add-r2&show=5538#a5538 Thu, 09 Feb 2017 10:03:51 +0000 Beantwortet: Vereinfachung b) https://info2.aifb.kit.edu/qa/index.php?qa=5525&qa_1=vereinfachung-b&show=5530#a5530 In der vierten Zeile ist ein Fehler. Dort müsste stehen LOOP JUMPZERO END, damit nicht sofort zum Ende gesprungen wird, sondern erst wenn der Wert im Akkumulator null ist.<br /> <br /> Aber sonst sieht der Code richtig aus.<br /> <br /> Viele Grüße<br /> <br /> Philipp (Tutor) ASS-AD https://info2.aifb.kit.edu/qa/index.php?qa=5525&qa_1=vereinfachung-b&show=5530#a5530 Wed, 08 Feb 2017 19:08:55 +0000 Beantwortet: Alternative Lösung Assembler Programm https://info2.aifb.kit.edu/qa/index.php?qa=5500&qa_1=alternative-l%C3%B6sung-assembler-programm&show=5506#a5506 Hallo,<br /> <br /> du kannst die Rechenoperationen natürlich, soweit erlaubt, vertauschen. Die Lösung ist fast richtig, allerdings hast du vergessen vor der Klammer noch &quot;+ r&quot; zu addieren.<br /> <br /> Gruß ASS-AB https://info2.aifb.kit.edu/qa/index.php?qa=5500&qa_1=alternative-l%C3%B6sung-assembler-programm&show=5506#a5506 Wed, 08 Feb 2017 13:01:01 +0000 Kommentiert: Assembler als Funktion ausdrücken https://info2.aifb.kit.edu/qa/index.php?qa=4531&qa_1=assembler-als-funktion-ausdr%C3%BCcken&show=4533#c4533 Völlig verständlich, bezog mich gestern auf die geschlossene Formel! Habe die Summennotierung überhaupt nicht gesehen....lag ggfs. an den 30 Grad+! <br /> <br /> Vielen Dank!! ASS-AE https://info2.aifb.kit.edu/qa/index.php?qa=4531&qa_1=assembler-als-funktion-ausdr%C3%BCcken&show=4533#c4533 Sat, 25 Jun 2016 08:20:05 +0000 Beantwortet: Welchen Wert hat R1, wenn ich nicht speichere, aber trotzdem nochmal 1 subtrahiere? https://info2.aifb.kit.edu/qa/index.php?qa=4282&qa_1=welchen-wert-nicht-speichere-trotzdem-nochmal-subtrahiere&show=4283#a4283 <p> Schau mal hier: <a rel="nofollow" href="http://info2.aifb.kit.edu/qa/index.php?qa=4196&amp;qa_1=verst%C3%A4ndnis">http://info2.aifb.kit.edu/qa/index.php?qa=4196&amp;qa_1=verst%C3%A4ndnis </a></p> <p> In meiner damaligen Antwort findest du auch die Antwort auf deine Frage!</p> <p> Viele Grüße,<br> Janine (Tutorin)</p> ASS-AD https://info2.aifb.kit.edu/qa/index.php?qa=4282&qa_1=welchen-wert-nicht-speichere-trotzdem-nochmal-subtrahiere&show=4283#a4283 Sat, 13 Feb 2016 17:40:55 +0000 Beantwortet: Verständnis https://info2.aifb.kit.edu/qa/index.php?qa=4196&qa_1=verst%C3%A4ndnis&show=4197#a4197 <p> Hallo uqdrx!</p> <p> Genau wie in der Vorlesung erklärt gibt es ein sogenanntes Akkumulationsregister, in dem du Werte zwischenspeichern kannst und das bei den 1-Adressbefehlen adressiert wird. Dh. entsprechend des angegebenen Operationscodes und des Operanden wird der aktuelle Wert des Akkumulationsregisters modifiziert und wieder gespeichert.</p> <p> Durch <em>LOAD #1</em> wird also der alte Wert des Akkumulationsregisters nun der Zahlenwert 1 überschrieben.</p> <p> Durch <em>STORE R3</em> wird der Wert des Akkumulationsregisters nun auch in R3 gespeichert.</p> <p> Durch <em>SUBTRACT #1</em> wird vom aktuellen Wert des Akkumulationsregisters der Zahlenwert 1 abgezogen und das Ergebnis wieder im Akkumulationsregister gespeichert.</p> <p> Ich hoffe, das hilft dir weiter!</p> <p> Viele Grüße,<br> Janine (Tutorin)<br> &nbsp;</p> ASS-AD https://info2.aifb.kit.edu/qa/index.php?qa=4196&qa_1=verst%C3%A4ndnis&show=4197#a4197 Thu, 11 Feb 2016 22:27:19 +0000 Beantwortet: Wie lautet der Befehl zum Abrunden in Assemblersprache und warum taucht dieser in der Lösung nicht auf? https://info2.aifb.kit.edu/qa/index.php?qa=3773&qa_1=lautet-befehl-abrunden-assemblersprache-taucht-dieser-l%C3%B6sung&show=3780#a3780 Beim Rechnen mit ganzen Zahlen erfolgt normalerweise automatisch ein Abrunden, deshalb haben wir das nicht explizit hingeschrieben. Einen Befehl für Abrunden haben wir meines Wissens nicht kennengelernt.<br /> <br /> Viele Grüße<br /> <br /> Lukas König ASS-AB https://info2.aifb.kit.edu/qa/index.php?qa=3773&qa_1=lautet-befehl-abrunden-assemblersprache-taucht-dieser-l%C3%B6sung&show=3780#a3780 Tue, 02 Feb 2016 15:27:43 +0000 Beantwortet: Ist Acc nach LOAD x leer? https://info2.aifb.kit.edu/qa/index.php?qa=1809&qa_1=ist-acc-nach-load-x-leer&show=1815#a1815 Hey,<br /> <br /> soweit alles richtig. Wenn du einen Wert durch &quot;Load&quot; aufrufst wird er dadurch nicht aus seinem ursprünglichen Speicherort entfernt. Am Ende des ersten Durchlaufs hast du also tatsächlich 2 in R4 stehen. ASS-AD https://info2.aifb.kit.edu/qa/index.php?qa=1809&qa_1=ist-acc-nach-load-x-leer&show=1815#a1815 Sun, 15 Feb 2015 19:48:49 +0000 Beantwortet: Fehlender JUMPZERO in Musterlösung https://info2.aifb.kit.edu/qa/index.php?qa=1555&qa_1=fehlender-jumpzero-in-musterl%C3%B6sung&show=1556#a1556 <div class="ilFrmPostContent"> <p> Hallo,</p> <p> für die Funktion lässt sich für den Fall r+s=0 kein sinnvoller Wert angeben. Evtl. könnte man natürlich in höhreren Sprachen wie Java eine Exception werfen. Hier kann man den Fall aber auch vernachlässigen, wenn nichts explizit dazu in der Aufgabenstellung steht.</p> <p> In der Klausur wird explizit angegeben, dass z.B. r+s&gt;0 gelten soll o.ä. Ansonsten kannst du diese Annahme auch einfach selbst kurz hinschreiben, dann wissen wir bei der Korrektur, was du dir gedacht hast.</p> <p> Beste Grüße</p> <p> Fabian (Tutor)</p> </div> <p> &nbsp;</p> ASS-AB https://info2.aifb.kit.edu/qa/index.php?qa=1555&qa_1=fehlender-jumpzero-in-musterl%C3%B6sung&show=1556#a1556 Tue, 25 Nov 2014 11:07:31 +0000 Beantwortet: Verständnisfragen zur Musterlösung https://info2.aifb.kit.edu/qa/index.php?qa=1553&qa_1=verst%C3%A4ndnisfragen-zur-musterl%C3%B6sung&show=1554#a1554 <div class="ilFrmPostContent"> <p> 1. Beim Befehl DIV wird nur der ganzzahlige Anteil der Division berechnet (z.B. 10 DIV 3 = 3 und nicht 3 1/3). So wird die Floor-funktion realisiert.</p> <p> 2. Ich sehe bei der Aufgabe keine b) :-)</p> <p> 3. Genau. Das Beispiel aus den Vorlesungsfolien unterscheidet sich von dem aus dem Tutorium.</p> <p> Ich denke es macht keinen Sinn zwei verschiedene Anweisungsarten in einem Assembler Programm zu benutzen.</p> <p> Angenommen die Schreibweise aus der Vorlesung wird benutzt. Bevor man einen Befehl wie ADD benutzt, lädt man sich den ersten Summanden in das Akkumulatorregister durch den Befehl LOAD . ADD 5 führt jetzt dazu, dass der Wert im Akkumukatorregister um 5 erhöht wird. Nun kann man das Ergebnis entweder in einem anderen Register speichern (mit STORE Zielregister) oder direkt damit weiter rechnen. DIV 2 z.B. teilt das Ergebnis der Addition, das noch im Akkumulator steht dann durch 2 und somit geht das Ergebnis der Addition "verloren",wenn man es nicht extra gespeichert hat. Hoffe das benatowortet deine Frage.</p> <p> Sven (Tutor)</p> </div> <p> &nbsp;</p> ASS-AB https://info2.aifb.kit.edu/qa/index.php?qa=1553&qa_1=verst%C3%A4ndnisfragen-zur-musterl%C3%B6sung&show=1554#a1554 Tue, 25 Nov 2014 11:06:11 +0000 Beantwortet: Ist schreiben von Assembler klausurrelevant ? https://info2.aifb.kit.edu/qa/index.php?qa=1551&qa_1=ist-schreiben-von-assembler-klausurrelevant&show=1552#a1552 Doch. Ob Sie es glauben oder nicht, im Aufgabenpool kommt die eine oder andere Aufgabe vor, die wir so nicht direkt wortwörtlich in der Klausur stellen werden ;-)<br /> <br /> Es sei aber hier nochmal darauf hingewiesen, dass Sie Assembler lesen und verstehen können müssen!<br /> <br /> Viele Grüße<br /> <br /> Lukas König ASS-AB https://info2.aifb.kit.edu/qa/index.php?qa=1551&qa_1=ist-schreiben-von-assembler-klausurrelevant&show=1552#a1552 Tue, 25 Nov 2014 11:04:09 +0000 Beantwortet: Frage zu STORE und LOAD https://info2.aifb.kit.edu/qa/index.php?qa=530&qa_1=frage-zu-store-und-load&show=531#a531 Wenn Sie eine Zahl aus dem Akkumulator laden, dann bedeutet dies nicht, dass Sie somit die Zahl aus dem Akkumulator löschen, sondern Sie können diese beliebig oft laden, wenn Sie diese dazwischen nicht überschreiben.<br /> <br /> Viele Grüße<br /> Friederike Pfeiffer und Lukas König ASS-AC https://info2.aifb.kit.edu/qa/index.php?qa=530&qa_1=frage-zu-store-und-load&show=531#a531 Wed, 22 Oct 2014 16:04:58 +0000 Kommentiert: Alternativlösung des Programms https://info2.aifb.kit.edu/qa/index.php?qa=521&qa_1=alternativl%C3%B6sung-des-programms&show=524#c524 Wenn man am JumpZero in Zeile zwei einmal vorbeigelaufen ist, kommt man dort gar nicht mehr hin. Dieser Sprungbefehl ist lediglich zum Abfangen des Spezialfalls n = 0 konstruiert. In diesem Fall springt man dann aus Zeile 2 direkt zum Ende.<br /> <br /> Gruß Claudio (Tutor) ASS-AF https://info2.aifb.kit.edu/qa/index.php?qa=521&qa_1=alternativl%C3%B6sung-des-programms&show=524#c524 Wed, 22 Oct 2014 15:59:40 +0000 Beantwortet: Verständnisfrage zu LOAD und STORE https://info2.aifb.kit.edu/qa/index.php?qa=442&qa_1=verst%C3%A4ndnisfrage-zu-load-und-store&show=443#a443 <div class="ilFrmPostContent"> <p> Wenn sich bereits ein Wert im Acc befindet, und ein weiterer Wert mit LOAD in den Acc geladen wird, wird dann der erste Wert überschrieben?</p> <p> &nbsp;</p> <p> Ja.</p> <p> &nbsp;</p> <p> Und, ist der Acc nach STORE leer oder welcher Wert befindet sich darin?</p> <p> &nbsp;</p> <p> Ich nehme an, der gleiche Wert wie vor STORE. Wenn man mit dem alten Wert weiterrechnen will, siehe ich auf den ersten Blick nicht, warum man STORE verwenden sollte. Wenn man danach einen neuen Wert lädt, ist es ziemlich egal, was nach STORE in Acc steht.</p> <p> &nbsp;</p> <p> Gruß,</p> <p> &nbsp;</p> <p> Tobias (Tutor)</p> </div> <p> &nbsp;</p> ASS-AA https://info2.aifb.kit.edu/qa/index.php?qa=442&qa_1=verst%C3%A4ndnisfrage-zu-load-und-store&show=443#a443 Wed, 22 Oct 2014 14:11:06 +0000 Beantwortet: Befehl LOAD R2 weglassen? https://info2.aifb.kit.edu/qa/index.php?qa=440&qa_1=befehl-load-r2-weglassen&show=441#a441 <div class="ilFrmPostContent"> <p> Du brauchst die beiden Befehle LOAD R2 und ADD R1. Wenn du nur ADD R2 schreibst, dann hast du ja nur ein Speicherelement, nämlich R2. Du musst dann ja auch noch ein zweites Element angeben, auf das du R2 addieren möchtest. Deswegen kannst du nicht nur ADD R2 schreiben ohne vorher R1 geladen zu haben. Oder eben anders herum, wie in der Musterlösung.</p> <p> Grüße Theresa (Tutor)</p> </div> <p> &nbsp;</p> ASS-AA https://info2.aifb.kit.edu/qa/index.php?qa=440&qa_1=befehl-load-r2-weglassen&show=441#a441 Wed, 22 Oct 2014 14:06:45 +0000 Beantwortet: Verständnisfrage zu Sprungbefehlen (JUMPZERO, JNZ) https://info2.aifb.kit.edu/qa/index.php?qa=437&qa_1=verst%C3%A4ndnisfrage-zu-sprungbefehlen-jumpzero-jnz&show=439#a439 Du hast da wohl einen kleinen Denkfehler. In R1 und in R2 steht von Beginn an jeweils ein bestimmter Wert. Du brauchst zur Berechnung der Funktion schließlich auch 2 Werte, nämlich R1 und R2. Wenn du mit R2=0 starten würdest, kommt das richtige Ergebnis raus, denn R3 = 1 (1.+.2 Zeile) = R1^0, egal was in R1 für ein Wert steht.<br /> <br /> Du kannst dir zum besseren Verständnis der Funktionsweise auch immer mal ein konkretes Zahlenbeispiel ausdenken und dann schauen, was der Assembler in den einzelnen Schritten berechnet. Du könntest ja mal probieren die einzelnen Schritte nachzuvollziehen wenn R1=2 und R2=3 gegeben wäre.<br /> <br /> Wenn dir das noch nicht hilft, kannst du dich ja nochmal melden.<br /> <br /> Viele Grüße<br /> <br /> Patrick (Tutor) ASS-AA https://info2.aifb.kit.edu/qa/index.php?qa=437&qa_1=verst%C3%A4ndnisfrage-zu-sprungbefehlen-jumpzero-jnz&show=439#a439 Wed, 22 Oct 2014 14:04:43 +0000 Assembler: könnte man auch die Formel n*(n+1)/2 zur Berechnung benutzen? https://info2.aifb.kit.edu/qa/index.php?qa=435&qa_1=assembler-k%C3%B6nnte-man-auch-die-formel-zur-berechnung-benutzen <div class="ilFrmPostContent"> <p> zur b)</p> <p> könnte man auch die Formel n*(n+1)/2 zur Berechnung benutzen also:</p> <p> Load R1</p> <p> Add #1</p> <p> Store R2</p> <p> Load R2</p> <p> Multiply R1</p> <p> Divide #2</p> <p> Store R2</p> <p> ???</p> </div> <p> &nbsp;</p> ASS-AA https://info2.aifb.kit.edu/qa/index.php?qa=435&qa_1=assembler-k%C3%B6nnte-man-auch-die-formel-zur-berechnung-benutzen Wed, 22 Oct 2014 13:53:35 +0000