MOPS-Jump-Problem

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

MOPS-Jump-Problem
Ich habe ein kleines Problem mit MOPS und den Jump-Befehlen.
Zumindest ich und ein paar Freunde finden keinen Fehler:

ld 0
cmp b
jeq #22

Zeile 22: out 1

Die Fehlermeldung lautet: Sprungziel enthält keinen oder inkorrekten Befehl.

Das selbe Problem tritt auch bei einem bedingten Sprung zu einer ld a-Anweisung auf, allerdings nicht bei einer unbedingten.

Kann mir vielleicht jemand helfen?


Ich kenn mich mit MOPS jetzt auch nicht so gut aus, aber wie wärs wenn du statt dem Sprungziel #22 bei deinem Sprungziel eine Marke setzt, also jeq output und in Zeile 22:" out 1 :output "

Dann siehst du ja obs wegen dem Sprung ist oder er wirklich Probleme hat, den out-Befehl auszuführen.


Genauso beschrieben, wie du es gesagt hast, jetzt meint er dass das Sprungziel nicht definiert ist. :huh:

jeq output

out 1 :output

soweit müsste auch das stimmen oder?
Ich glaube ich fang mal an an einer Alternativlösung zu arbeiten…


0_o
ne Alternativlösung ist keine schlechte Idee!
xD omg den Fehler hatte ich vorhin auch. Bei mir war der Fehler ein Leerzeichen zwischen Doppelpunkt und der Marke zu setzen.
Tut mir echt leid, aber bei mir funktioniert das mit dem Sprung, ich benutze auch cmp und danach jeq, ich kapier nicht worans noch liegen könnte. Soweit ich das an deiner Lösung erkennen kann, haben wir sogar den gleichen Lösungsansatz!
Also bei mir sieht das ungefähr so aus:

st c
cmp 1 :loop
jeq end

jmp loop
out c :end
end


jo sieht bei mir ähnlich aus…
Ein hoch auf MOPS, ich schätze mal ich schicke die “inkorrekte” Lösung mal per Email an den Tutor und lad eine korrekte hoch…

Vllt. hat der Tutor nen Plan.


Wenn deine Alternativ-Lösung funktioniert ist das die Beste Lösung des Dilemmas.
Falls du möchtest kannst du ja hier posten was dann falsch war, würde mich interessieren^^


Ich vermute, dass man zu keinem Sprungziel, das erst später definiert wird, springen kann.


[quote] Zitat von nenas:
Ich vermute, dass man zu keinem Sprungziel, das erst später definiert wird, springen kann.
[/quote]
hab ich gemacht, hat funktioniert. Hab hier ja auch nen Teil von meinem Code gepostet


hmm ok, hatte eigentlich syntaktisch alles richtig, habs jetzt aber anders gelöst.


Jetzt tipp ich fast mal drauf dass wir unterschieldliche Systeme nutzen. Ich arbeite unter Windows XP mit der mops.exe . Nutzt ihr Linux oder ein anderes Betriebssystem?


win7


Auch win7 und habs schlussendlich mit alternativlösung gemacht…


Probiert einfach mal einer das Beispiel (5. Beispiel) aus http://www.viktorianer.de/info/software/mops-1.01.pdf , wenn das geht muss es an euren Programmen liegen. Wenn das auch nicht geht ist MOPS kaputt.