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