PIC17C42 Microchip Technology, PIC17C42 Datasheet - Page 51

no-image

PIC17C42

Manufacturer Part Number
PIC17C42
Description
High-Performance 8-Bit CMOS EPROM/ROM Microcontroller
Manufacturer
Microchip Technology
Datasheets

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
PIC17C42-16/JW
Manufacturer:
AD
Quantity:
12
Part Number:
PIC17C42A-16/L
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC17C42A-16/PQ
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC17C42A-16/PQ
Manufacturer:
MICROCH
Quantity:
20 000
Part Number:
PIC17C42A-16/PT
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC17C42A-16E/L
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC17C42A-16E/PQ
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC17C42A-25/P
Manufacturer:
MICROCLOCK
Quantity:
20 000
Example 8-4 shows the sequence to do an 16 x 16
signed multiply. Equation 8-2 shows the algorithm that
used. The 32-bit result is stored in four registers
RES3:RES0. To account for the sign bits of the argu-
ments, each argument pairs most significant bit (MSb)
is tested and the appropriate subtractions are done.
EQUATION 8-2:
RES3:RES0
1996 Microchip Technology Inc.
= ARG1H:ARG1L * ARG2H:ARG2L
= (ARG1H * ARG2H * 2
(ARG1H * ARG2L * 2
(ARG1L * ARG2H * 2
(ARG1L * ARG2L)
(-1 * ARG2H<7> * ARG1H:ARG1L * 2
(-1 * ARG1H<7> * ARG2H:ARG2L * 2
16 x 16 SIGNED
MULTIPLICATION
ALGORITHM
8
8
16
)
)
)
16
16
) +
)
+
+
+
+
EXAMPLE 8-4:
;
;
;
;
;
SIGN_ARG1
;
CONT_CODE
MOVFP
MULWF
MOVPF
MOVPF
MOVFP
MULWF
MOVPF
MOVPF
MOVFP
MULWF
MOVFP
ADDWF
MOVFP
ADDWFC
CLRF
ADDWFC
MOVFP
MULWF
MOVFP
ADDWF
MOVFP
ADDWFC
CLRF
ADDWFC
BTFSS
GOTO
MOVFP
SUBWF
MOVFP
SUBWFB
BTFSS
GOTO
MOVFP
SUBWF
MOVFP
SUBWFB
:
ARG1L, WREG
ARG2L
PRODH, RES1 ;
PRODL, RES0 ;
ARG1H, WREG
ARG2H
PRODH, RES3 ;
PRODL, RES2 ;
ARG1L, WREG
ARG2H
PRODL, WREG ;
RES1, F
PRODH, WREG ;
RES2, F
WREG, F
RES3, F
ARG1H, WREG ;
ARG2L
PRODL, WREG ;
RES1, F
PRODH, WREG ;
RES2, F
WREG, F
RES3, F
ARG2H, 7
SIGN_ARG1
ARG1L, WREG ;
RES2
ARG1H, WREG ;
RES3
ARG1H, 7
CONT_CODE
ARG2L, WREG ;
RES2
ARG2H, WREG ;
RES3
16 x 16 SIGNED MULTIPLY
ROUTINE
PIC17C4X
; ARG1L * ARG2L ->
;
; ARG1H * ARG2H ->
;
; ARG1L * ARG2H ->
;
; Add cross
;
;
;
; ARG1H * ARG2L ->
;
; Add cross
;
;
;
; ARG2H:ARG2L neg?
; no, check ARG1
;
; ARG1H:ARG1L neg?
; no, done
;
PRODH:PRODL
PRODH:PRODL
PRODH:PRODL
PRODH:PRODL
products
products
DS30412C-page 51

Related parts for PIC17C42