Hallo, haben die beiden oben genannten MCs den gleichen Assembler-Befehlssatz???
haben diese beiden den gleichen Assemblerbefehlssatz?
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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.