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:
-
code bug:
change the following line:
addwf Register, f ; Add the Current Contents of "Register" to "w"
to this one:
addwf Register, w ; Add the Current Contents of "Register" to "w"
+
file: /Techref/microchip/math/mul/8xconst8-mp.htm,
1KB, , updated: 2010年4月5日 10:41, local time: 2025年9月8日 15:54,
©2025 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE.
Questions?<A HREF="http://massmind.org/techref/microchip/math/mul/8xconst8-mp.htm"> Multiply 8 bits times an 8 bit constant</A>
Did you find what you needed?
Welcome to massmind.org!
Welcome to massmind.org!
.