[net.micro.68k] Godless 68000 instruction set

achut@qsi03.UUCP (Achut Reddy) (12/23/83)

You ain't kidding brother!!!!

Here are a few more 68000 bogosities for you:

How to double the value in a data register?

Now, no one would even think of using:
	mulu	#0,d0
since it's common knowledge that the fastest way to multiply
by a power of 2 is by shifting:
	asl.l	#1,d0
But the following is even faster:
	add.l	d0,d0	(!)

Also, how many machines do you know where the time to shift is a linear
function of the shift count??

Did you know that
	bra	<16-bit displacement>
is slower than
	jmp	a0@
and takes up twice as much space!

WHY ISN'T THERE A 32-BIT MULTIPLY AND DIVIDE???  EVEN *MIX* HAS THEM!

chk (check register against bounds) is a very nice instruction.  It
could ACTUALLY BE USED if the dummkopf just set condition codes instead
of initiating exception processing!

Anyway, that's enough exclamation marks for one day...
-- 
				Achut Reddy
				sdcrdcf!trw-unix!scgvaxd!qsi03!achut

guy@rlgvax.UUCP (Guy Harris) (12/31/83)

<Good USENET citizens should have installed the fix for the news-eater bug
long ago>

	Also, how many machines do you know where the time to shift
	is a linear function of the shift count??

Rather a lot, really; the KA10 PDP-10 processor, for one.  Back in the Dark
Ages, before everybody had barrel shifters, the instruction time for a
shift instruction was a linear function of the shift count on almost all
machines.

	Guy Harris
	{seismo,ihnp4,allegra}!rlgvax!guy

mem@sii.UUCP (Mark Mallett) (01/04/84)

b
Ayup there are a lot of holes in the 68000 instruction set, and a number
of irritating features.  But it DOES exist.

A couple of things that I found aggravating about the 68000 are the
processor manual and the Motorola universal (being written in Pascal...)
assembler/linker.

The manual:

	does not give an index of instructions by opcode.  aarrgghh.

	Describes the addressing modes in its opening chapters using
	an obscure and idiotic notation (which seems to have been
	adopted by some assemblers...), then goes on to give its
	detailed examples and addressing mode tables in a completely
	different format; the one actually used by their assembler.


Nothing really needs to be said about the assembler/linker.  I had
to use it- it was the only thing around for a while.  I also looked
at the sources; came away shaking head.

Mark E. Mallett
decvax!sii!mem