PDP-11 as 68000 Cloner

COTTRELL, JAMES cottrell at nbs-vms.arpa
Wed Nov 20 11:14:56 AEST 1985


/*  >> = Me, > = Ron Natalie
> > Of course there are *some* differences. And of course the 68000 is a 
> > 32-bit machine (crammed onto a 16-bit bus) while the pdp is a 16-bit one.
> 
> And it has the bytes in the wrong order.

Great! Another Little Endian!
 
> > 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?  PDP-11 instructions allow things like
> 
> 		tst	foobar(pc)
> 
> which is exactly equivalent to
> 		
> 		tst	foobar

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. Or
maybe I want to pass it's address as a parameter to
str{cpy,cat,cmp,mung}. Since this ain't no VAX, we can't double index as

		tst	foobar(pc)[r0]. 

And it's just a box of rain, I don't know who put it there
Believe if if you need it, or leave it if you dare

	jim		cottrell at nbs
*/
------



More information about the Comp.lang.c mailing list