Forum: Mikrocontroller und Digitale Elektronik MEGA16 --> 8535


von Günter König (Gast)


Lesenswert?

Hi,
könnte mir jemand mit einfachen Worten den Unterschied zwischen den 
Befehlen


8535     MEGA16
--------------
RJMP  --> JMP  / RJMP
RCALL --> CALL / RCALL

erklären? Wann kann ich beim MEGA 16 JMP durch RJMP ersetzen und wann 
nicht? (gleiches gilt für Call und RCALL)

Danke,

Günter

von mmerten (Gast)


Lesenswert?

JMP / CALL  voller Adressbereich 64k Worte
RJMP / RCALL  Zieladresse muss im Bereich +- 2k Worte liegen
Codebedarf:
JMP / CALL = 2 Worte  RJMP / RCALL = 1 Wort

von Günter König (Gast)


Lesenswert?

Ich nehme an, mit Codebedarf meinst du die Wortlänge (8bit bei rjmp und 
16bit bei jmp)der Sprungadresse.
O.K., hilft schon mal etwas weiter.
Vielen Dank,

Günter

von Thomas Burkhardt (Gast)


Lesenswert?

Hallo,

die Wortlänge ist beim AVR aber 2 Byte, sprich 16 Bit. Alle Befehle sind 
mindestens 1 Wort gross, so auch der RJMP und haben 16 Bit.


Grüße

von Günter König (Gast)


Lesenswert?

Aber wieso 64K Sprungweite bei 16K Flash? Und warum ist das aufgeteilt 
in JMP und RJMP?
Vor allem fällt mir auf, wenn ich in einem 8535 Programm die 
Sprungbefehle ändere in call und jmp, passiert mit einem Mega16 Müll.
Wieso?

Günter

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
Noch kein Account? Hier anmelden.