@Mega128
Du schreibst viel - habe aus Zeitgründen nicht alles von Dir gelesen.
Zum Thema:
Ich habe bei meinem dem Butterfly-Projekt auch fleißig ASM und BASCOM gemixt und kenne Dein Problem:
siehe https://www.roboternetz.de/phpBB2/ze...ag.php?t=23231
bzw der 81KByte BASCOM-Code:
https://www.roboternetz.de/phpBB2/download.php?id=7721
Ich empfehle ein paar Byte im Code zu opfern und das nette Feature von BASCOM zu nutzen, da BASCOM-Variablen in ASM einzubinden.
sts {Timer_Key_Event},R24
Da BASCOM außer ein paar Pointer in keinster Weise beim nächsten Befehl die Register recycelt sondern alles wieder nachlädt, hast Du keine Chance einem Register zu vertrauen. Spätestens bei der nächsten Bascom-Version fliegt Dir Dein Code um die Ohren.
Soll heißen, wenn Du ASM benutzt, lade die Register in Bascom-Variablen und zurück. Der einzig sichere Weg.
Ansonsten gibt es noch gcc...
Ein Fluch von BASCOM ist, dass er beim compilieren viele Syntaxfehler im ASM-Code nicht meldet.
&H1F <-> 0x1F was hat mich dass schon für Zeit gekostet...