Forum: PC-Programmierung Assembler: Fehler im Unterprogramm


von rennschlumpf (Gast)


Lesenswert?

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

von Dussel (Gast)


Lesenswert?

Wie üblich: Welcher Controller?
für die Avr gibt es meines Wissens keine Befehle mit drei Operanden. Und 
cjne kommt mir unbekannt vor.

von André (Gast)


Lesenswert?

Controller ist wohl ein 8051.

sprung2:sprung1:ret


Wer erlaubt dir denn, die Sprungmarken in eine Zeile zu schreiben?

Gruessle

von André (Gast)


Lesenswert?

EDIT:

Naja vielleicht gehts ja sogar. Welche Fehlermeldung wirft denn der 
Assembler aus?

Gruessle

von rennschlumpf (Gast)


Lesenswert?

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.

von Dussel (Gast)


Lesenswert?

Ich würde die Sprungmarken untereinander schreiben

von rennschlumpf (Gast)


Angehängte Dateien:

Lesenswert?

line 38 ist die Zeile mit ret und line 32 der erste cjne Befehl

von rennschlumpf (Gast)


Lesenswert?

ok,scheint zu funktionieren.

Dankeschön :)

von Miraculix (Gast)


Lesenswert?

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

von André (Gast)


Lesenswert?

Eine andere Frage, die sich mir da stellt.

Warum laesst du nicht beide CJNEs einfach zu Sprung1 huepfen und 
loeschst Sprung2 einfach? :)

Gruessle

von rennschlumpf (Gast)


Lesenswert?

da war ich nicht sicher ob das funktioniert, von 2 verschiedenen Stellen 
auf den selben Namen zu springen.

von taugenichts (Gast)


Lesenswert?

>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
Noch kein Account? Hier anmelden.