欢迎访问ic37.com |
会员登录 免费注册
发布采购

PIC18F8680-I/PT 参数 Datasheet PDF下载

PIC18F8680-I/PT图片预览
型号: PIC18F8680-I/PT
PDF下载: 下载PDF文件 查看货源
内容描述: 64 /68/ 80引脚高性能, 64 KB的增强型闪存微控制器与ECAN模块 [64/68/80-Pin High-Performance, 64-Kbyte Enhanced Flash Microcontrollers with ECAN Module]
分类和应用: 闪存微控制器
文件页数/大小: 496 页 / 8365 K
品牌: MICROCHIP [ MICROCHIP ]
 浏览型号PIC18F8680-I/PT的Datasheet PDF文件第106页浏览型号PIC18F8680-I/PT的Datasheet PDF文件第107页浏览型号PIC18F8680-I/PT的Datasheet PDF文件第108页浏览型号PIC18F8680-I/PT的Datasheet PDF文件第109页浏览型号PIC18F8680-I/PT的Datasheet PDF文件第111页浏览型号PIC18F8680-I/PT的Datasheet PDF文件第112页浏览型号PIC18F8680-I/PT的Datasheet PDF文件第113页浏览型号PIC18F8680-I/PT的Datasheet PDF文件第114页  
PIC18F6585/8585/6680/8680  
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 four registers,  
RES3:RES0.  
EQUATION 8-2:  
16 x 16 SIGNED  
MULTIPLICATION  
ALGORITHM  
RES3:RES0  
=
=
ARG1H:ARG1L ARG2H:ARG2L  
(ARG1H ARG2H 216) +  
EQUATION 8-1:  
16 x 16 UNSIGNED  
MULTIPLICATION  
ALGORITHM  
(ARG1H ARG2L 28) +  
(ARG1L ARG2H 28) +  
(ARG1L ARG2L) +  
(-1 ARG2H<7> ARG1H:ARG1L 216) +  
(-1 ARG1H<7> ARG2H:ARG2L 216)  
RES3:RES0  
=
=
ARG1H:ARG1L ARG2H:ARG2L  
(ARG1H ARG2H 216) +  
(ARG1H ARG2L 28) +  
(ARG1L ARG2H 28) +  
(ARG1L ARG2L)  
EXAMPLE 8-4:  
16 x 16 SIGNED  
MULTIPLY ROUTINE  
MOVF  
MULWF  
ARG1L, W  
ARG2L  
EXAMPLE 8-3:  
16 x 16 UNSIGNED  
MULTIPLY ROUTINE  
; ARG1L * ARG2L ->  
; PRODH:PRODL  
MOVF  
MULWF  
ARG1L, W  
ARG2L  
MOVFF  
MOVFF  
PRODH, RES1  
PRODL, RES0  
;
;
; ARG1L * ARG2L ->  
; PRODH:PRODL  
;
;
;
;
MOVFF  
MOVFF  
PRODH, RES1  
PRODL, RES0  
MOVF  
MULWF  
ARG1H, W  
ARG2H  
; ARG1H * ARG2H ->  
;
;
; PRODH:PRODL  
;
;
MOVF  
MULWF  
ARG1H, W  
ARG2H  
MOVFF  
MOVFF  
PRODH, RES3  
PRODL, RES2  
; ARG1H * ARG2H ->  
; PRODH:PRODL  
MOVFF  
MOVFF  
PRODH, RES3  
PRODL, RES2  
;
;
MOVF  
MULWF  
ARG1L, W  
ARG2H  
; ARG1L * ARG2H ->  
; PRODH:PRODL  
MOVF  
MULWF  
ARG1L, W  
ARG2H  
MOVF  
ADDWF  
MOVF  
PRODL, W  
RES1  
PRODH, W  
;
; ARG1L * ARG2H ->  
; PRODH:PRODL  
; Add cross  
; products  
MOVF  
ADDWF  
MOVF  
PRODL, W  
RES1  
PRODH, W  
;
ADDWFC RES2  
CLRF WREG  
ADDWFC RES3  
;
;
;
; Add cross  
; products  
ADDWFC RES2  
CLRF WREG  
ADDWFC RES3  
;
;
;
;
MOVF  
MULWF  
ARG1H, W  
ARG2L  
;
; ARG1H * ARG2L ->  
;
; PRODH:PRODL  
MOVF  
MULWF  
ARG1H, W  
ARG2L  
;
MOVF  
ADDWF  
MOVF  
PRODL, W  
RES1  
PRODH, W  
;
; ARG1H * ARG2L ->  
; PRODH:PRODL  
; Add cross  
; products  
MOVF  
ADDWF  
MOVF  
PRODL, W  
RES1  
PRODH, W  
;
ADDWFC RES2  
CLRF WREG  
ADDWFC RES3  
;
;
;
; Add cross  
; products  
ADDWFC RES2  
CLRF WREG  
ADDWFC RES3  
;
;
;
;
;
BTFSS  
BRA  
MOVF  
SUBWF  
MOVF  
ARG2H, 7  
; ARG2H:ARG2L neg?  
; no, check ARG1  
;
;
;
SIGN_ARG1  
ARG1L, W  
RES2  
Example 8-4 shows the sequence to do a 16 x 16  
signed multiply. Equation 8-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.  
ARG1H, W  
SUBWFB RES3  
SIGN_ARG1  
BTFSS  
BRA  
ARG1H, 7  
CONT_CODE  
ARG2L, W  
RES2  
; ARG1H:ARG1L neg?  
; no, done  
;
;
;
MOVF  
SUBWF  
MOVF  
ARG2H, W  
SUBWFB RES3  
;
CONT_CODE  
:
DS30491C-page 108  
2004 Microchip Technology Inc.