PIC18LF452 Microchip Technology, PIC18LF452 Datasheet - Page 74

no-image

PIC18LF452

Manufacturer Part Number
PIC18LF452
Description
(PIC18LFxx2) Enhanced FLASH Microcontrollers
Manufacturer
Microchip Technology
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
PIC18LF452-I/L
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC18LF452-I/P
Manufacturer:
Microchip Technology
Quantity:
135
Part Number:
PIC18LF452-I/PT
Manufacturer:
XILINX
Quantity:
349
Part Number:
PIC18LF452-I/PT
Quantity:
6
Part Number:
PIC18LF452-I/PT
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC18LF452-I/PT
Manufacturer:
HAR
Quantity:
15
Part Number:
PIC18LF452-I/PT
Manufacturer:
MICROCH
Quantity:
20 000
Part Number:
PIC18LF4520-E/PT
Manufacturer:
SIEMENS
Quantity:
2
Part Number:
PIC18LF4520-I/ML
Manufacturer:
MICROCHI
Quantity:
20 000
Part Number:
PIC18LF4520-I/PT
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC18LF4520-I/PT
Manufacturer:
MICROCHI
Quantity:
20 000
Part Number:
PIC18LF4520T-I/PT
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC18LF4523-I/ML
Manufacturer:
Microchip Technology
Quantity:
135
Part Number:
PIC18LF4525-I/PT
Manufacturer:
MICROCHIP/微芯
Quantity:
20 000
PIC18FXX2
EXAMPLE 7-3:
Example 7-4 shows the sequence to do a 16 x 16
signed multiply. Equation 7-2 shows the algorithm
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 7-2:
DS39564B-page 72
RES3:RES0
;
;
;
=
=
MOVF
MULWF
MOVFF
MOVFF
MOVF
MULWF
MOVFF
MOVFF
MOVF
MULWF
MOVF
ADDWF
MOVF
ADDWFC RES2,
CLRF
ADDWFC RES3,
MOVF
MULWF
MOVF
ADDWF
MOVF
ADDWFC RES2,
CLRF
ADDWFC RES3,
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
ARG1L, W
ARG2L
PRODH, RES1 ;
PRODL, RES0 ;
ARG1H, W
ARG2H
PRODH, RES3 ;
PRODL, RES2 ;
ARG1L, W
ARG2H
PRODL, W
RES1,
PRODH, W
WREG
ARG1H, W
ARG2L
PRODL, W
RES1,
PRODH, W
WREG
16 x 16 UNSIGNED
MULTIPLY ROUTINE
16 x 16 SIGNED
MULTIPLICATION
ALGORITHM
F
F
F
F
F
F
; ARG1L * ARG2L ->
; PRODH:PRODL
; ARG1H * ARG2H ->
; PRODH:PRODL
; ARG1L * ARG2H ->
; PRODH:PRODL
;
; Add cross
; products
;
;
;
;
; ARG1H * ARG2L ->
; PRODH:PRODL
;
; Add cross
; products
;
;
;
8
8
16
) +
) +
) +
16
16
) +
)
EXAMPLE 7-4:
;
;
;
;
;
SIGN_ARG1
;
CONT_CODE
MOVF
MULWF
MOVFF
MOVFF
MOVF
MULWF
MOVFF
MOVFF
MOVF
MULWF
MOVF
ADDWF
MOVF
ADDWFC RES2,
CLRF
ADDWFC RES3,
MOVF
MULWF
MOVF
ADDWF
MOVF
ADDWFC RES2,
CLRF
ADDWFC RES3,
BTFSS
BRA
MOVF
SUBWF
MOVF
SUBWFB RES3
BTFSS
BRA
MOVF
SUBWF
MOVF
SUBWFB RES3
:
ARG1L, W
ARG2L
PRODH, RES1 ;
PRODL, RES0 ;
ARG1H, W
ARG2H
PRODH, RES3 ;
PRODL, RES2 ;
ARG1L, W
ARG2H
PRODL, W
RES1,
PRODH, W
WREG
ARG1H, W
ARG2L
PRODL, W
RES1,
PRODH, W
WREG
ARG2H, 7
SIGN_ARG1
ARG1L, W
RES2
ARG1H, W
ARG1H, 7
CONT_CODE
ARG2L, W
RES2
ARG2H, W
16 x 16 SIGNED
MULTIPLY ROUTINE
F
F
F
F
F
F
2002 Microchip Technology Inc.
; ARG1L * ARG2L ->
; PRODH:PRODL
; ARG1H * ARG2H ->
; PRODH:PRODL
; ARG1L * ARG2H ->
; PRODH:PRODL
;
; Add cross
; products
;
;
;
;
; ARG1H * ARG2L ->
; PRODH:PRODL
;
; Add cross
; products
;
;
;
; ARG2H:ARG2L neg?
; no, check ARG1
;
;
;
; ARG1H:ARG1L neg?
; no, done
;
;
;

Related parts for PIC18LF452