Hallo, ich habe in einem Unterprogramm meiner µCprogramms einen Fehler(laut compiler). Unterprogramm: taster:inc R0 cjne R0,#10d,sprung1 mov R0,#0d inc R1 cjne R1,#10d,sprung2 mov R1,#0d sprung2:sprung1:ret und zwar bei den Sprungnamen. Andere Namen helfen nicht, wenn ich beide cjne Befehle entferne funktioniert alles einwandfrei. Kann mir jemand helfen? Vielen Dank
Wie üblich: Welcher Controller? für die Avr gibt es meines Wissens keine Befehle mit drei Operanden. Und cjne kommt mir unbekannt vor.
Controller ist wohl ein 8051. sprung2:sprung1:ret Wer erlaubt dir denn, die Sprungmarken in eine Zeile zu schreiben? Gruessle
EDIT: Naja vielleicht gehts ja sogar. Welche Fehlermeldung wirft denn der Assembler aus? Gruessle
ich wüsste keine andere Lösung ich will quasi bei beiden Verzweigungen direkt aus dem Unterprogramm raus gehen. Wie kann ich das lösen? Ja, handelt sich um einen 8051.
line 38 ist die Zeile mit ret und line 32 der erste cjne Befehl
André hat recht! Nur EINE Sprungmarke pro Zeile! Ist doch auch Übersichtlicher! Also: sprung1: sprung2: Ret Mehrere Sprungmarken bzw. Labels hintereinander machen nichts! Logisch daß zwei Fehler gemeldet werden! Weil Zeile 38 (die mit dem Ret) fehlerhaft ist (2 Labels in einer Zeile) wird sie nicht übersetzt. Damit Label Sprung1 unbekannt, was zur 2. Fehlermeldung führt! Gruß Miraculix
Eine andere Frage, die sich mir da stellt. Warum laesst du nicht beide CJNEs einfach zu Sprung1 huepfen und loeschst Sprung2 einfach? :) Gruessle
da war ich nicht sicher ob das funktioniert, von 2 verschiedenen Stellen auf den selben Namen zu springen.
>da war ich nicht sicher ob das funktioniert, von 2 verschiedenen Stellen >auf den selben Namen zu springen. Autsch
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.