[pic] "absolute" und "relocatable"

Gast #2261604
Lesenswert?

In relozierbarem Code sind alle Sprungaddressen relativ, so dass er an 
jeder beliebigen Stelle im Speicher laufen kann. Das ist wichtig, wenn 
man Binär(!)libaries baut und verwenden will. Bei reinem Quellcode der 
immer vollständig übersetzt wird, ist auch absolut möglich (und 
schneller, da die Zieladresse nicht erst berechnet werden muss).

Gruß,
Christian
Gast #2261646
Lesenswert?

Lehrmann Michael schrieb:
> Warum?

Hm.. Beim AVR ist das zumindest so: Da ist RJMP kürzer, da nur 1 Word, 
bei JMP brauch man 2 Word, + 1 Takt mehr (um dieses aus dem 
Programmspeicher zu laden). Beim PIC scheint es aber anders zu sein: 
anscheinend gibt es nur "goto" als absoluten Sprungbefehl. Da muss man 
für einen relativen Sprung den wert vom Program Counter nehmen, dann was 
addieren oder abziehen, und dann das Ergebnis wieder auf den Program 
Counter hauen. Das ist in der tat viel langsamer ...

Also nehme ich meine Aussage zurück. Ich war (fälschlicherweise) davon 
ausgegangen, der PIC hätte auch soetwas wie RJMP.

Noah

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren