; Constant-Speed Divide Routines ; ; z80 6502 arm .div2 lsr a asr a mov r0,r0,lsr #1 ; .div3 sub r0,r0,r0,lsr #2 ; r0=r0-(r0/4) = 75% sub r0,r0,r0,lsr #3 ; (3/4)*(7/8) = 65.625% add r0,r0,r0,lsr #6 ; (3/4)*(7/8)*(65/64) = 66.6503906% mov r0,r0,lsr #1 ; (3/4)*(7/8)*(65/64)*(1/2) = 33.3251953% ; accurate for entry values of 0 to 10000