#1 12. Februar 2006 Wir machen leichtes Assembler und zum größten Teil versteh ich das. Also arbeiten nur mit Load,Store,ADD,LOOP. Nur das LOOP verstehe ich nicht ganz, was tut das. Wenn ich so ein Fragment habe. LOOP 1 : Load 4 Add 0 Store 0 Load 3 Add 1 TEST JMP LOOP 1 STOP Den letztebn Part, bei TEST etwas geprüft, dann ein Wert zugewiesen aber dann kommt das komische. JMP LOOP 1 , der spring t ja eigentlic immer wieder zu LOOP1 Stelle , weil da ist ja keine Abfrage oder wie soll man das verstehen, also gelangt der nie zu STOP oder wie wird entschieden ? + Multi-Zitat Zitieren
#2 12. Februar 2006 Ich bin jetzt nicht so der Assembler-Kenner, aber ich würde es genauso wie du bewerten, ansonsten müsste es ein bedingter Sprung sein oder der Sprung zu STOP erfolgt innerhalb von TEST. + Multi-Zitat Zitieren
#3 12. Februar 2006 Hier ist das Ubungsblatt zu Assembler. Vielleicht verstehst du das dann besser. http://rapidshare.de/files/13139080/Aufgabenblatt.pdf.html + Multi-Zitat Zitieren
#4 13. Februar 2006 Sieht 1. nach 'ner komischen Assembler-Version und 2. nach 'ner Endlosschleife aus. + Multi-Zitat Zitieren
#5 13. Februar 2006 Lösung für a) Load 0 lädt M[0] x=a Invert setzt ein Minus vor dem Wert x=-a Add 1 addiert M[1] dazu x=-a+b Invert setzt ein Minus vor den gesamten Term x=-(-a+b) Store 0 speichert Ergebnis auf M[0] x=a-b b) Das Assemblerprogramm addiert auf den Operanden a pro Durchlauf den Wert 1. Wie oft diese Addition durchgeführt wird , ist von b und c abhängig. Daher kann man schreiben. M[0] = a+2(b*c) Tja wie kommt man darauf. + Multi-Zitat Zitieren
#6 13. Februar 2006 Ahso, na das musst du auch dazu sagen. Das ist nen vereinfachte quasi imaginäre Assembler Sprache und wenn du dir die Funktionstabelle anschaust, dann siehst du, dass TEST ein fester Befehl ist, der bei Wert <= 0 nicht um einen Befehl weiter springt, sondern um zwei. Das heißt bei positivem test wird der JMP Befehl einfach übergangen. + Multi-Zitat Zitieren