Forum: Mikrocontroller und Digitale Elektronik Befehl in IAR Entwicklungsumgebung


von led (Gast)


Lesenswert?

Hallo zusammen,
ich bin Anfänger bei IAR. Ich habe eine Frage.
Was ist das Symbol $ in dem Befehl
JMP $

Wieso ist das eine loop forever ????


Gruß

led.

von Stefan (Gast)


Lesenswert?

Ein kurzer Blick in den 'Assembler Programming Guide' sagt Dir, dass '$' 
als sogenannter 'location counter' definiert ist.
D.h. '$' enthält praktisch gesehen immer die Adresse der jeweiligen 
Codezeile, in der er selbst steht.
Ein 'JMP $' springt demnacht immer auf sich selbst -> Endlosschleife!

von Stefan (Gast)


Lesenswert?

Also vielleicht nochmal etwas klarer:

Der Compiler ersetzt '$' durch die aktuelle Adresse in der der Befehl 
(z.B. 'JMP $') steht.
Mann kann dadurch natürlich auch relative Sprünge nach vorne, bzw. 
zurück realisieren, wenn man '$ +/- x' verwendet. Allerdings sind 
hierfür Labels wohl angesagter, da man dann die Sprungweite nicht selbst 
berechnen muss!

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.