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. The original version of this routine is published in CALL APPLE, JUNE 1983, P45-48.

FAC1     = $58
FAC2     = $59

        ; A*256 + X = FAC1 * FAC2
        lda #$00
        ldx #$08
        dec FAC2  ; FAC2-1
m0      bcc m1
        adc FAC2  ; this is just + FAC2 because FAC2-1 plus the set carry = FAC2
m1      ror
        ror FAC1
        bpl m0
        ldx FAC1
base/short_8bit_multiplication_16bit_product.1598744721.txt.gz · Last modified: 2020-08-30 01:45 by djmips