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 clr q_4 clr q_3 clr q_2 clr q_1 setb q_2.7 m1: rr n_2 rr n_1 sb C jmp m2 mov W, n_3 add q_3, W mov W, n_4 snb C movsz W, ++n_4 add q_4, W m2: rr q_4 rr q_3 rr q_2 rr q_1 sb C jmp m1 endm