Position Independent Code
COTTRELL, JAMES
cottrell at nbs-vms.arpa
Sun Dec 15 03:58:18 AEST 1985
/*
> >> > As far as relative code, the pdp is missing something. How do you
> >> > load the address of a variable relative to the PC? This way:
> >> >
> >> > mov pc,r0 ; address of `here'
> >> > here: add #foobar-here,r0 ; make relative
> >> >
> >> Bad example, now what are you going to do with this loaded
> >> address?
> >
> >Bad example, now what can I do with that loaded question? You see,
> >foobar just happens to be an array! What I need to do is get it's
> >address into a register so I can auto-{in,de}crement the bugger.
> >
> > jim cottrell at nbs
> >*/
> The most likely thing I would do with that loaded register is send
> the value off to some external hardware, like a DMA controller,
> which needs to know absolute addresses.
>
> carl lowenstein marine physical lab u.c. san diego
That is one thing. Another is pass it to something like `strcpy'.
Just because a program is position independent doesn't mean it
doesn't use absolute addresses. Once PIC is loaded it may not be
moved arbitrarily without its knowledge.
jim cottrell at nbs
*/
------
More information about the Comp.lang.c
mailing list