Code: Select all
; unsigned multiply by Daud Zoss
; as seen at http://swissembly.wordpress.com/2012/12/15/8-bit-multiply-in-place-on-6502/
;
; parameters in X and Y
; result (low byte only) in X
um8:
pha
tya
pha
txa
tsx
ldy #$08
loop1:
pha
dex
asl
dey
bne loop1
lda $0109,x
ldy #$08
loop2:
asl
bcs skip1
pha
lda #$00
sta $0101,x
pla
skip1:
inx
dey
bne loop2
ldx #$00
ldy #$08
loop3:
txa
tsx
clc
adc $0101,x
tax
pla
dey
bne loop3
pla
tay
plaCheers
Ed