hardware multiply/divide functionality in CPUs

Sean Conner spc at conman.org
Mon Mar 7 18:51:27 CST 2011


It was thus said that the Great Jules Richardson once stated:
> Chuck Guzis wrote:
> >There were math co-processor boards (AM9511, AM9512, for example) for 
> >S100 systems.  ISTR that there was even a TRW bipolar (16x16?  Huge 
> >chip that ran hot as a pistol) for the S100 bus.
> 
> I suppose if it appears transparent to the user (machine executes 
> instruction xx, doesn't know what to do with it, and throws it at the 
> copro) then it's a valid solution.  I think I'm more interested in systems 
> that came with support as standard rather than as an optional cost extra, 
> though.
> 
> >The Moto 6809 had an 8x8 multiplier.
> 
> Yes, that seems to be the 'famous' one that gets mentioned everywhere. It 
> seems it was of the shift-add variety. Anyone recall if it would work with 
> signed integers? (I'm just trying to work out how the math works for signed 
> multiplies at the moment)

  I'm looking at _TRS-80 Color Computer Assembly Language Programming_ by
William Barden, Jr., and he states:

	Although it's possible to do [signed multiply] with special
	multiplies ... the easiest way is to first convert the operands to
	absolute values, do the multiply ... and then change back the result
	to the proper sign.
		(Chater 17, pg 170)

  For multiplication, 

		+X * +Y = +Z
		-X * +Y = -Z
		+X * -Y = -Z
		-X * -Y = +Z

  Looks like the sign of the result is the exclusive or of the sign bits
(but beware of overflow)

  -spc




More information about the cctalk mailing list