User Tools

Site Tools


base:short_8bit_multiplication_16bit_product

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
MUL8
        lda #$00
        ldx #$08
        dec FAC2  ; FAC2-1
        clc
m0      bcc m1
        adc FAC2  ; this is just + FAC2 because FAC2-1 plus the set carry = FAC2
m1      ror
        ror FAC1
        dex
        bpl m0
        ldx FAC1
        rts
base/short_8bit_multiplication_16bit_product.1598735578.txt.gz · Last modified: 2020-08-29 23:12 by djmips