subwf CALCTMP2+1, f ;
MOV lw 1 ;
btfss status, c ;
subwf CALCTMP2+2, f ;
btfss status, c ;
subwf CALCTMP2+3, f ;
btfss status, c ;
subwf CALCTMP2+4, f ;
;
MOV f Y+2, w ;
subwf CALCTMP2+2, f ;
MOV lw 1 ;
btfss status, c ;
subwf CALCTMP2+3, f ;
btfss status, c ;
subwf CALCTMP2+4, f ;
;
MOV f Y+3, w ;
subwf CALCTMP2+3, f ;
MOV lw 1 ;
btfss status, c ;
subwf CALCTMP2+4, f ;
btfsc CALCTMP2+4, 7 ; Skip below if CALCTMP2 < 0.
goto div_next ; (MSB of CALCTMP2 is ’1’)
MOV f CALCTMP2+0, w ; CALCTMP1(Mod) <- CALCTMP2 &
MOV wf CALCTMP1+0 ; LSB of X <- ’1’.
MOV f CALCTMP2+1, w ;
MOV wf CALCTMP1+1 ;
MOV f CALCTMP2+2, w ;
MOV wf CALCTMP1+2 ;
MOV f CALCTMP2+3, w ;
MOV wf CALCTMP1+3 ;
MOV f CALCTMP2+4, w ;
MOV wf CALCTMP1+4 ;
;
bsf X+0, 0 ;
div_next
decfsz MDLOOPCT, f ; Continue if loop > 0.
goto div_loop ;
; *** Return from subroutine ***
MOV f CALCTMP1+0, w ; EY(Mod) <- CALCTMP1.
MOV wf EY+0 ;
MOV f CALCTMP1+1, w ;
MOV wf EY+1 ;
MOV f CALCTMP1+2, w ;
MOV wf EY+2 ;
MOV f CALCTMP1+3, w ;
MOV wf EY+3 ;
return
;-------------------------------------------------------------------------
; General: Rotate left. (16 bits length)
; Input : W (Pointer of entry)
;-------------------------------------------------------------------------
rl16
; *** Rotate left ***
MOV wf fsr
上一页 [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单片机