avrstudio - sprungbefehlfehler

Gast #34309
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.
Gast #34312
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
Gast #34314
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.