Hallo, haben die beiden oben genannten MCs den gleichen Assembler-Befehlssatz???
Ja, vom Befehlssatz her sind sie gleich. Man kann die Programme fast direkt übernehmen, Speicheradressen und IO müssen aber entsprechend angepasst werden. Gruss Jörg
Martin K. wrote:
> haben diese beiden den gleichen Assemblerbefehlssatz?
Nicht ganz. Der Mega16 hat mehr als 8 KiB Flash. Deshalb gibts bei ihm
z.B. die Befehle jmp und call, weil rjmp und rcall nur bis 8 KiB
addressieren können.
Aus dem Grund sind auch (*ACHTUNG*: Häufiger Umsteiger-Fehler) die
Interrupt-Vektoren beim Mega16 doppelt so lang wie beim Mega8, weil jmp
32 Bit (2 Wörter) lang ist, rjmp aber nur 16 Bit. Deshalb reicht es bei
leeren Interrupt-Vektoren (also Vektoren nicht genutzter Interrupts)
nicht, einfach ein reti reinzuschreiben, weil reti auch nur 16 Bit hat
und dadurch die Vektortabelle durcheinandergerät. Entweder mit Adressen
arbeiten (.org) oder "nop reti" reinschreiben.
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.