Re: A82: fast multiply...
[Prev][Next][Index][Thread]
Re: A82: fast multiply...
This is directly from "Programming the Z80" by Rodney Zaks. It's very
optimized, but it could be unrolled to further speed it up.
;HL=L*E
ld B, 8
MULT:
add HL, HL
jr nc, NOADD
add HL, DE
NOADD:
djnz MULT
On Sat, 3 Aug 1996, Lars Ahlzén wrote:
> Hello!
> As the Z80 doesn't have a multiply instruction (which is almost
> necessary for star-scrolls and things like that) then I've tried to do
> my own routines. It surely works, but I think it takes more than 80
> cycles to execute. (here's the code:)
>
> Multiply:
> ; Multiplies b and de and gives the product in hl
> ld hl,0
> ld a,1
> mulloop:
> ld c,a
> and b
> jr z,noadd
> add hl,de
> noadd:
> ld a,c
> sla e
> rl d
> add a,a
> jr nc,mulloop
> ret
>
> Someone must have written a faster way of mulitplying two 8-bit numbers
> than this, or...? If so, could you reply to this and show your routines?
>
> (by the way: is there a fast way for integer division, too?)
>
> Lars Ahlzen
> lars.ahlzen@swipnet.se
>
--------------------------------------------------
Henrik Edlund Piett Productions
piett@piett.com http://www.piett.com/
"They were in the wrong place at the wrong time.
Naturally they became heroes."
Leia Organa of Alderaan, Senator
--------------------------------------------------
References: