Assembler LOOP Befehl

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von kicke, 12. Februar 2006 .

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #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 ?
     

  2. Anzeige
    Dealz: stark reduzierte Angebote finden.
  3. #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.
     
  4. #3 12. Februar 2006
  5. #4 13. Februar 2006
    Sieht 1. nach 'ner komischen Assembler-Version und 2. nach 'ner Endlosschleife aus.
     
  6. #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.
     
  7. #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.
     

  8. Videos zum Thema
Die Seite wird geladen...
Similar Threads - Assembler LOOP Befehl
  1. Antworten:
    3
    Aufrufe:
    956
  2. Antworten:
    6
    Aufrufe:
    1.703
  3. Antworten:
    1
    Aufrufe:
    948
  4. Antworten:
    1
    Aufrufe:
    591
  5. Antworten:
    2
    Aufrufe:
    713