hi community, hab heut zum erstenmal die fehlermeldung "Relative branch out of reach" von meinem compiler bekommen. (sprungbehel ist breq) prozessor ist ein mega8. jetzt ist meine frage wie lös ich denn sowas auf? routinen kann ich nicht viel kürzen. und so zwischensprünge einfügen vergeudet unnötig zeit. hab au nix im forum oder in der anleitung gefunden.
spring aber mit breq. oder gibts da ein gleichen befehl der absolut springt?
manchmal kann man Programmteile anders anordnen, um die Sprungdistanz zu verkürzen, ein Kochrezept gibts dafür nicht. statt: breq ziel1 kannst du dann schreiben: brne ziel2 rjmp ziel1 ziel2: weiter im Text
hab ich au schon überlegt. hab aber grad noch ne andere lösung gefunden: ... breq ziel1 ... ziel1: jmp eigentliches_ziel ...
viele Wege führen nach Rom, deine Lösung funktioniert natürlich auch, würde trotzdem meine favorisieren, da du den endgültigen Sprungbbefehl da stehen hast, wo die Verzweigung auch stattfindet, ist leichter lesbar. Ausserdem kann es passieren, dass der breq wieder irgendwann zu kurz ist, wenn das Programm zwischen breq und jmp irgendwann mal länger wird. Aber, wie gesagt, das kannst du halten wie Nolte.
Hi! Bei mir sieht das dann so aus: brne Ziel2 rjmp Ziel1 Ziel2 Nun ja viele Wege ... MFG Uwe
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.