Guten Tag. Ich woltle mal fragen was der große Unterschied zwischen rcall und call sowie ijmp und rjmp ist. Worin besteht der Unterschied der BEfehle und wozu werden die einzelnen verwendet (wann wird welches verwendet)?
Normalerweise ist ein call ein kurzer call mit einem kleinen displacement zB +-64byte, waehrend ein rcall den gesammten adressbereich springen kann, hier wahrscheinlich 0..65k. Ein ijmp ist ein indirekter Sprung, der zB ueber den Z-pointer geht. Der Unterschied zwischen einem call und einem jmp ist, dass der call zurueck kann, da wird beim call selbst der returnpointer auf dem stack abgelegt, waehrend ein jmp das nicht macht. Am ende des calls ( = subroutine) macht man ueblicherweise ret (=return), und dann ist der programmzaehler wieder zurueck, vor dem call, plus zwei, oder so.
Mini Nilp schrieb: > Normalerweise ist ein call ein kurzer call mit einem kleinen > displacement zB +-64byte, waehrend ein rcall den gesammten adressbereich > springen kann, hier wahrscheinlich 0..65k. kann es sein dass du was verwechselt hast? Kenn das eher so rum: rcall = relative call, Unterfunktionsaufruf mit begrenzter Reichweite call = Unterfunktionsaufruf :-)
im wesentlichen liegt der unterschied in der "erreichbarkeit". d. h. du kannst mit den verschiedenen "calls" verschieden weit von dieser Position springen. im zweifel nimm einfach den "call", der am weitesten springt
Wenn er nur bestimmt weit springen kann, kann man doch sagen, dass man bis zu einer bestimmten Größe immer rcall nehmen kann. Wie schauts aus mit den Ressourcen, braucht der call befehlt länger, mehr Spreicher?
> Wie schauts aus mit den Ressourcen, braucht der call befehlt länger, > mehr Spreicher? Die weitreichenden Versionen brauchen natürlich mehr Speicher, weil die Adresse länger ist.
Ja. moeglichewrweise ist ein rcall kuerzer. Ein Blick ins Datenblatt sollte helfen, nachdem die Optionen aufgezeigt wurden.
Hi Wieso nicht: http://www.atmel.com/dyn/resources/prod_documents/doc0856.pdf konsultieren MfG Spess
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.