PIC18C242 MICROCHIP [Microchip Technology], PIC18C242 Datasheet - Page 62

no-image

PIC18C242

Manufacturer Part Number
PIC18C242
Description
High-Performance Microcontrollers with 10-Bit A/D
Manufacturer
MICROCHIP [Microchip Technology]
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
PIC18C242-I/SO
Manufacturer:
MICROCHIP
Quantity:
2 000
Part Number:
PIC18C242/JW
Manufacturer:
NS
Quantity:
10
6.2
Example 6-1 shows the sequence to do an 8 x 8
unsigned multiply. Only one instruction is required
when one argument of the multiply is already loaded in
the WREG register.
Example 6-2 shows the sequence to do an 8 x 8 signed
multiply. To account for the sign bits of the arguments,
each argument’s most significant bit (MSb) is tested
and the appropriate subtractions are done.
EXAMPLE 6-1:
EXAMPLE 6-2:
Example 6-3 shows the sequence to do a 16 x 16
unsigned multiply. Equation 6-1 shows the algorithm
that is used. The 32-bit result is stored in 4 registers
RES3:RES0.
EQUATION 6-1: 16 x 16 UNSIGNED
RES3:RES0
PIC18CXX2
DS39026B-page 62
MOVFF
MULWF
MOVFF
MULWF
BTFSC
SUBWF
MOVFF
BTFSC
SUBWF
Operation
ARG1, WREG
ARG2
ARG1, WREG
ARG2
ARG2, SB
PRODH, F
ARG2, WREG
ARG1, SB
PRODH, F
=
=
ARG1H:ARG1L
(ARG1H
(ARG1H
(ARG1L
(ARG1L
ROUTINE
8 x 8 SIGNED MULTIPLY
ROUTINE
MULTIPLICATION
ALGORITHM
8 x 8 UNSIGNED MULTIPLY
;
; ARG1 * ARG2 ->
;
; ARG1 * ARG2 ->
; PRODH:PRODL
; Test Sign Bit
; PRODH = PRODH
;
; Test Sign Bit
; PRODH = PRODH
;
ARG2H
ARG2L
ARG2H
ARG2L)
PRODH:PRODL
ARG2H:ARG2L
2
2
2
- ARG1
- ARG2
16
8
8
)+
)+
)+
Preliminary
EXAMPLE 6-3:
Example 6-4 shows the sequence to do 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: 16 x 16 SIGNED
RES3:RES0
;
;
;
=
=
MOVFF
MULWF
MOVFF
MOVFF
MOVFF
MULWF
MOVFF
MOVFF
MOVFF
MULWF
MOVFF
ADDWF
MOVFF
ADDWFC
CLRF
ADDWFC
MOVFF
MULWF
MOVFF
ADDWF
MOVFF
ADDWFC
CLRF
ADDWFC
ARG1H:ARG1L
(ARG1H
(ARG1H
(ARG1L
(ARG1L
(-1
(-1
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>
ARG1H<7>
ARG2H
ARG2L
ARG2H
ARG2L)+
16 x 16 UNSIGNED
MULTIPLY ROUTINE
MULTIPLICATION
ALGORITHM
ARG2H:ARG2L
7/99 Microchip Technology Inc.
2
2
2
ARG1H:ARG1L
ARG2H:ARG2L
; ARG1L * ARG2L ->
;
; ARG1H * ARG2H ->
;
; ARG1L * ARG2H ->
;
; Add cross
;
;
;
; ARG1H * ARG2L ->
;
; Add cross
;
;
;
16
8
8
)+
)+
)+
PRODH:PRODL
PRODH:PRODL
PRODH:PRODL
PRODH:PRODL
products
products
2
2
16
16
)+
)

Related parts for PIC18C242