Microchip Technology IC MCU OTP 2KX PIC17C42A-16/P DIP-40 MCP PIC17C42A-16/P Scheda Tecnica

Codici prodotto
PIC17C42A-16/P
Pagina di 241
 
PIC17C4X
 
DS30412C-page 50
 
 
 1996 Microchip Technology Inc.
 
Example 8-3 shows the sequence to do a 16 x 16
unsigned multiply. Equation 8-1 shows the algorithm
that is used. The 32-bit result is stored in 4 registers
RES3:RES0.
 
EQUATION 8-1:
16 x 16 UNSIGNED 
MULTIPLICATION 
ALGORITHM
 
RES3:RES0
=
ARG1H:ARG1L * ARG2H:ARG2L
=
(ARG1H * ARG2H * 2
 
16
 
) +
(ARG1H * ARG2L * 2
 
8
 
)
+
(ARG1L * ARG2H * 2
 
8
 
)
+
(ARG1L * ARG2L)
 
EXAMPLE 8-3:
16 x 16 MULTIPLY ROUTINE
 
   MOVFP    ARG1L, WREG
   MULWF    ARG2L       ; ARG1L * ARG2L ->
                        ;   PRODH:PRODL
   MOVPF    PRODH, RES1 ;
   MOVPF    PRODL, RES0 ;
;
   MOVFP    ARG1H, WREG
   MULWF    ARG2H       ; ARG1H * ARG2H ->
                        ;   PRODH:PRODL
   MOVPF    PRODH, RES3 ;
   MOVPF    PRODL, RES2 ;
;
   MOVFP    ARG1L, WREG
   MULWF    ARG2H       ; ARG1L * ARG2H ->
                        ;   PRODH:PRODL
   MOVFP    PRODL, WREG ;
   ADDWF    RES1, F     ; Add cross
   MOVFP    PRODH, WREG ;    products
   ADDWFC   RES2, F     ;
   CLRF     WREG, F     ;
   ADDWFC   RES3, F     ;
;
   MOVFP    ARG1H, WREG ;
   MULWF    ARG2L       ; ARG1H * ARG2L ->
                        ;   PRODH:PRODL
   MOVFP    PRODL, WREG ;
   ADDWF    RES1, F     ; Add cross
   MOVFP    PRODH, WREG ;    products
   ADDWFC   RES2, F     ;
   CLRF     WREG, F     ;
   ADDWFC   RES3, F     ;