mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu einigen Assembler Befehlen


Autor: Michael D. (etzen_michi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)?

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
:-)

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael D. (etzen_michi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja. moeglichewrweise ist ein rcall kuerzer. Ein Blick ins Datenblatt 
sollte helfen, nachdem die Optionen aufgezeigt wurden.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Wieso nicht:

http://www.atmel.com/dyn/resources/prod_documents/...

konsultieren

MfG Spess

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.