[net.lang.c] Position Independent Code

cottrell@nbs-vms.arpa (COTTRELL, JAMES) (12/14/85)

/*
> >> > 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@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@nbs
*/
------