Hallo, ich versuch gerade einen video generator zu basteln, das bild kommt aus dem flash des µcom, ich lasse dazu einfach 2 zeilen aufbauen, jeweils mit lpm und out (file im anhang) dann lasse ich mit cpi zeile,153 ; 153*2 +6zeilen vom sync brne shift jmp ausgabe prüfen, ob das bild am ende ist´.. leider mag er das ned aus welchem grund auch immer wie gesagt mein erstes ASM programm deshalb vielleicht etwas konfus ;-))
Hallo, das problem ist, dass der BRNE nur relative Verzweigungen mit einem Offset von maximal +/- 64 Byte durchführen kann. Dein Label "shift" ist aber weiter entfernt. Wenn Du die Folgenden Zeilen: cpi zeile,153 ; 153*2 +6zeilen vom sync brne shift jmp ausgabe So änderst: cpi zeile,153 ; 153*2 +6zeilen vom sync brne l_shift jmp ausgabe l_shift: jmp shift sollte es funktionieren. viele Grüße, Andi
This instruction branches relatively to PC in either direction (PC - 63 ≤ destination ≤ PC + 64). The parameter k is the offset from PC and is represented in two's complement form. BRNE k -64 ≤ k ≤ +63 "shift:" ist viiiiel zu weit weg. Als Workaround könttest Du an eine Stelle im Programm springen(lassen) die nicht weiter als 64Byte weg ist und von dort mit "rjmp" nach "shift:". Ist aber murks, oder? AxelR. Da war einer 'ne Minute schneller
naja hätte es auch ausgabe nennen können, oder wie auch immer. das ganze programm ist murks :-))
falls jemand verbesserungsvorschläge hat, her damit! danke für den tip. scheint wenigstens fehlerfrei zu compilieren. werde jetzt wohl mal schaltung aufbauen und testen
@Sebastian Heyn: Nur nicht verzweifeln. In Assembler muss man halt einige Dinge selber beachten, die normalerweise ein Compiler übernimmt. Aber dafür lernst Du die CPU In- und Auswändig kennen. ;-) viele Grüße, Andi
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.