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