PIC Microcontoller Math Method

Multiply 8 bits times an 8 bit constant

From http://www.myke.com/basic.htm

Sometimes you have to do a fast multiply on a register value with a constant. in 16 Bit Operations and Macros, I go through a number of methods, but I use the following Macro for this purpose for a single byte:
FastMul Macro Register, Constant
 variable i = Constant
 clrw                           ;  Put the Product in "w"
 while (i != 0)
 if ((i & 1) != 0)
  addwf  Register, w            ;  Add the Current Contents of "Register" to "w"
 endif
 bcf     STATUS, C              ;  Shift up the Register's Contents
 rlf     Register, f
 i = i / 2                      ;  Shift down the counter value
 endw
 endm

Comments: