Hi
Ich habe einen Assembler-Code, eingebettet in Bascom geschrieben, der nur funktioniert, wenn der Sprungbefehl (BRSH) eine "Humpelpause" einlegt!!!
Wenn zwischen BRSH und dem anzuspringenden Label viel Code steht (so um die 60 Zeilen) erscheint nach dem Compilieren die Fehlermeldung:
- Error: 220 / Forward jump out of Range
Wenn jedoch zwischen BRSH und dem anzuspringenden Label "Humpelpause:"
nur wenig Code steht (so um die 30 Zeilen) und hier eine zweite BRSH-Prüfung mit den selben Registerwerten erfolgt, mit denen die Humpelpause erreicht wurde, kann man gut und gerne weitere 30 Zeilen springen. - Und das Programm läuft wie gewünscht !!!
Die Anzahl der überspringbaren Zeilen ist etwas Code abhängig:
Wenn hier der Befehl
- LOADADR Irgendwas, X
steht, sind mehr Zeilen möglich als bei
- LOADADR Irgendwas(INDEX), X
Wenn zu oft "LOADADR Irgendwas(INDEX), X" steht, müssen die Humpelpausen weniger Code-Zeilen beinhalten, sonst gibt es wieder Error: 220
Ich habe mal den SoftwareStack erhöht, das bringt aber nichts.
Hat jemand eine Idee gegen Humpelpausen-Programmierung ???
Danke im Voraus
NLB
Lesezeichen