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.
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.