;
MOV f EY+1, w ;
addwf EX+1, f ;
MOV lw 1 ;
btfsc status, c ;
addwf EX+2, f ;
btfsc status, c ;
addwf EX+3, f ;
btfsc status, c ;
bsf X+0, 0 ;
;
MOV f EY+2, w ;
addwf EX+2, f ;
MOV lw 1 ;
btfsc status, c ;
addwf EX+3, f ;
btfsc status, c ;
bsf X+0, 0 ;
;
MOV f EY+3, w ;
addwf EX+3, f ;
btfsc status, c ;
bsf X+0, 0 ;
mul_next
bcf status, c ; Rotate EX + X to right.
rrf EX+3 ; (LSB of X -> MSB of EX)
rrf EX+2 ;
rrf EX+1 ;
rrf EX+0 ;
rrf X+3 ;
rrf X+2 ;
rrf X+1 ;
rrf X+0 ;
btfsc status, c ;
bsf EX+3, 7 ;
decfsz MDLOOPCT, f ; Continue if loop > 0.
goto mul_loop ;
; *** Return from subroutine ***
return
;-------------------------------------------------------------------------
; General: Divide. (64 bits source by 32 bits destination)
; Input : EX[0]-EX[3] (Source : 64 bits)
; X[0]- X[3]
; Y[0]- Y[3] (Destination: 32 bits)
; Output: EX[0]-EX[3] (Answer : 64 bits)
; X[0]- X[3]
; Y[0]- Y[3] (Mod : 32 bits)
;
; W register will be broken.
;
; Notes: Referred to AKIZUKI’s PIC sample software.
; This routine uses the same technic of manual-calculation.
;
; Example: 0000000001100100 (64h)
; +------------------
; (10h) 1010| 0000001111101000 (03E8h)
; 1010
; -------------------
; 1011
; 1010
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] 下一页
本文关键字:单片机 PIC单片机,单片机-工控设备 - PIC单片机