PIC18C658 MICROCHIP [Microchip Technology], PIC18C658 Datasheet - Page 73

no-image

PIC18C658

Manufacturer Part Number
PIC18C658
Description
High-Performance Microcontrollers with CAN Module
Manufacturer
MICROCHIP [Microchip Technology]
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
PIC18C658-1/CL
Manufacturer:
Microchip
Quantity:
6
Part Number:
PIC18C658-1/L
Manufacturer:
Microchip
Quantity:
6
Part Number:
PIC18C658-E/L
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC18C658-E/PT
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC18C658-ES
Manufacturer:
Microchip
Quantity:
131
Part Number:
PIC18C658-I/L
Manufacturer:
Microchip
Quantity:
385
Part Number:
PIC18C658-I/L
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC18C658-I/L
Manufacturer:
MICROCHIP/微芯
Quantity:
20 000
Part Number:
PIC18C658-I/PT
Manufacturer:
Microchip
Quantity:
601
Part Number:
PIC18C658-I/PT
Manufacturer:
Microchip Technology
Quantity:
10 000
Part Number:
PIC18C658T-E/L
Manufacturer:
Microchip Technology
Quantity:
10 000
Example 6-4 shows the sequence to perform an 16 x
16 signed multiply. Equation 6-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 6-2:
 2000 Microchip Technology Inc.
RES3:RES0
=
=
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
16
8
8
)
)
)
+
+
+
+
Advanced Information
16
16
)
)
+
EXAMPLE 6-4:
;
;
;
;
;
SIGN_ARG1
;
CONT_CODE
BTFSS
MULWF
MULWF
MULWF
MOVFF
MOVFF
MOVFF
MOVFF
MOVFF
MOVFF
MOVFF
MULWF
MOVF
ADDWF
MOVF
ADDWFC
CLRF
ADDWFC
MOVFF
MOVF
ADDWF
MOVF
ADDWFC
CLRF
ADDWFC
GOTO
MOVFF
SUBWF
MOVFF
SUBWFB
BTFSS
GOTO
MOVFF
SUBWF
MOVFF
SUBWFB
:
ARG2H, 7
ARG2L
ARG2H
ARG2L
ARG2H
ARG1H, 7
ARG1L, WREG
PRODH, RES1
PRODL, RES0
ARG1H, WREG
PRODH, RES3
PRODL, RES2
ARG1L, WREG
PRODL, W
RES1, F
PRODH, W
RES2, F
WREG
RES3, F
ARG1H, WREG
PRODL, W
RES1, F
PRODH, W
RES2, F
WREG
RES3, F
SIGN_ARG1
ARG1L, WREG
RES2
ARG1H, WREG
RES3
CONT_CODE
ARG2L, WREG
RES2
ARG2H, WREG
RES3
16 x 16 SIGNED MULTIPLY
ROUTINE
PIC18CXX8
; ARG1H:ARG1L neg?
; ARG1L * ARG2H ->
; ARG2H:ARG2L neg?
; ARG1L * ARG2L ->
;
;
;
; ARG1H * ARG2H ->
;
;
;
;
; Add cross
;
;
;
;
; ARG1H * ARG2L ->
;
; Add cross
;
;
;
; no, check ARG1
;
;
;
; no, done
;
;
;
;
;
;
;
DS30475A-page 73
PRODH:PRODL
PRODH:PRODL
PRODH:PRODL
PRODH:PRODL
products
products

Related parts for PIC18C658