Forum: Compiler & IDEs ARM Assembler Befehl


von Konrad Metzger (Gast)


Lesenswert?

Hallo,
langsam verstehe ich immer mehr von dem ARM Assembler, aber die
Bedeutung des Punktes hat sich mir noch nicht erschlossen. Kann mir
vielleicht jemand den Punkt zwischen den beiden Minus-Zeichen in der
Assemblerzeile erklären ?

ADD R11,PC,#label-.-8

Vielen Dank
Konrad

von Jörg Wunsch (Gast)


Lesenswert?

Ich kenne zwar den ARM-Assembler nicht, aber der Punkt steht gemeinhin
für den `location counter', d.h. die Adresse des aktuellen Befehls.
Wird wohl hier benutzt, um einen Offset zu ermitteln, der dann zum PC
addiert wird, wenn ich das richtig verstehe.

von Thomas X. (Gast)


Lesenswert?

R11 = PC + (#label - locationcounter - 8)

-8 wird (vermutlich, seh ja der zeile so aus dem kontext rausgerissen
nicht wirklich an was sie bewirken soll) benötigt, da der PC zum
zeitpunkt wenn die instruktion ausgeführt wird schon 8 bytes (= 2
instruktionen) weiter ist (prefetching...).

von Konrad Metzger (Gast)


Lesenswert?

Hallo thomas,
stimmt genau, ich konnte es jetzt nachvollziehen.
Danke.

Konrad

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.