base:short_8bit_multiplication_16bit_product
Differences
This shows you the differences between two versions of the page.
Next revisionBoth sides next revision | |||
base:short_8bit_multiplication_16bit_product [2015-10-20 07:02] – created graham | base:short_8bit_multiplication_16bit_product [2020-08-29 23:11] – increase performance with one byte cost and FAC2 decremented djmips | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Short 8bit * 8bit = 16bit multiply ====== | ====== 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. No tables required. | + | 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. |
< | < | ||
Line 11: | Line 11: | ||
lda #$00 | lda #$00 | ||
ldx #$08 | ldx #$08 | ||
+ | dec FAC2 ; FAC2-1 | ||
clc | clc | ||
m0 bcc m1 | m0 bcc m1 | ||
- | | + | adc FAC2 ; +FAC2-1 + 1 (carry) |
- | | + | |
m1 ror | m1 ror | ||
ror FAC1 | ror FAC1 |
base/short_8bit_multiplication_16bit_product.txt · Last modified: 2020-08-30 01:52 by djmips