Jeśli możesz poświęcić 8kB, to zrób tablicę wszystkich możliwych wyników, a proca mnożenia wyglądać będzie tak (spisana z kartki, nie zoptymalizowana, nie wiem czy działa, ale chodzi o sama ideę :rolleyes: ):
mul48 lda m4
and m8
tax
beq ?x
clc
lda m4
adc #>tab.lo
sta t.lo+1
adc #$10
sta t.hi+1
ldy m8
lda (t.hi),y
tax
lda (t.lo),y
?x rts
Komórki na stronie 0 o adresach t.lo i t.hi zawierają młodsze bajty tablic wyników i nie powinny się zmieniać w czasie wykonywania programu.
Zrobienie samej tablicy nie stanowi problemu. :)
Epi: jak przewidzisz wartości czynników drugiego mnożenia i jaką masz gwarancję, że mnożenie to będzie przez tę samą liczbę 8-bitową?
A nawet jeśli, to jak potem rozdzielisz wartość 16-bitową na dwie 12-bitowe? Tylko tak szybciutko, bo 60 cykli, to nie wiele. :twisted: