Posted to PICList Mon Aug 4 10:17:59 1997
;******************************************************************* ; Double Precision Multiplication ; ; n_2 : n_1 * n_4 : n_3 -> q_4:q_3:q_2:q_1 ; ; Standard shift and add. ; Execution time: 215 to 295 clock cycles. ; Code space: 22 locations ; ; Cleaned up and corrected version from Microchip Ap note by BF. ; Note: Ap note has errors! Additional mods by Scott Dattalo. ; ;******************************************************************* mpy16b16: macro local m1, m2 clrf q_4 clrf q_3 clrf q_2 clrf q_1 bsf q_2, 7 m1: rrf n_2, f rrf n_1, f skpc goto m2 movf n_3, w addwf q_3, f movf n_4, w skpnc incfsz n_4, w addwf q_4, f m2: rrf q_4, f rrf q_3, f rrf q_2, f rrf q_1, f skpc goto m1 endm