User Tools

Site Tools


This is an old revision of the document!

Short 8bit * 8bit = 16bit multiply

A small multiplication routine using the ancient egyptian multiplication algorithm. Factors should be stored in the FAC1 and FAC2 variables, the product can be found in Akku (high byte) and the X-Register (low byte). FAC1 will be destroyed. FAC2 is modified to FAC2-1. No tables required. Mod by djmips to increase performance but increased by one byte in size. There is an unwound version of this posted separately.

FAC1     = $58
FAC2     = $59

        ; A*256 + X = FAC1 * FAC2
        lda #$00
        ldx #$08
        dec FAC2  ; FAC2-1
m0      bcc m1
        adc FAC2  ; +FAC2-1 + 1 (carry)
m1      ror
        ror FAC1
        bpl m0
        ldx FAC1
base/short_8bit_multiplication_16bit_product.1598735494.txt.gz · Last modified: 2020-08-29 23:11 by djmips