• API
• FAQ
• Tools
• Archive
A Pastebin account makes a great Christmas gift
SHARE
TWEET

# BC_Times_DE (fast, avg=~594.6874)

Zeda Apr 16th, 2016 (edited) 93 Never
ENDING IN00days00hours00mins00secs

1. mul16:
2. ;Inputs:
3. ;   BC,DE are unsigned integers
4. ;Output:
5. ;   HL:DE is the 32-bit product
6. ;Destroys:
7. ;   A,B,C
8. ;min: 359cc
9. ;max: 717cc
10. ;avg: 596.34375cc
11. ;92 bytes
12.     ld a,c
13.     call DE_Times_A
14.     push hl
15.     push af
16.     ld a,b
17.     call DE_Times_A+2
18.     pop bc
19.     pop de
20. ;AHL
21. ; BDE
22.     ld c,d
25. ;AHLE
26.     ld d,l
27.     ld l,h
28.     ld h,a
29. ;HLDE
30.     ret
31. DE_Times_A:
32. ;Input: DE,A
33. ;Output: A:HL is the product, C=0, B,DE unaffected, z flag set if result is zero, c flag set if A is input as 1, else nc.
34. ;A:128~255 219+6{0,10}+{0,19}    avg=258.5   *1/2
35. ;A:64~127  203+5{0,10}+{0,19}    avg=237.5   *1/4
36. ;A:32~63   187+4{0,10}+{0,19}    avg=216.5   *1/8
37. ;A:16~31   171+3{0,10}+{0,19}    avg=195.5   *1/16
38. ;A:8~15    155+2{0,10}+{0,19}    avg=174.5   *1/32
39. ;A:4~7     139+{0,10}+{0,19}     avg=153.5   *1/64
40. ;A:2~3     123+{0,19}            avg=132.5   *1/128
41. ;A:1       107cc                 avg=107     *1/256
42. ;A:0       119cc                 avg=119     *1/256
43. ;overall avg: 237.671875cc
44.     ld c,0
45.     ld h,d
46.     ld l,e
47.     rla \ jr c,mul_07
48.     rla \ jr c,mul_06
49.     rla \ jr c,mul_05
50.     rla \ jr c,mul_04
51.     rla \ jr c,mul_03
52.     rla \ jr c,mul_02
53.     rla \ jr c,mul_01
54.     rla
55.     ret c
56.     ld h,a
57.     ld l,a
58.     ret
59. mul_07:
61. mul_06:
63. mul_05:
65. mul_04:
67. mul_03:
69. mul_02:
71. mul_01:
73.     ret
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.

Top