MOV lw 1 ;
btfsc status, c ;
addwf X+2, f ;
btfsc status, c ;
addwf X+3, f ;
MOV f Y+2, w ; Middle upper.
addwf X+2, f ;
MOV lw 1 ;
btfsc status, c ;
addwf X+3, f ;
MOV f Y+3, w ; Upper.
addwf X+3, f ;
; *** Return from subroutine ***
return
;-------------------------------------------------------------------------
; General: Subtract. (32 bits source - 32 bits destination)
; Input : X[0]-X[3] (Source : 32 bits)
; Y[0]-Y[3] (Destination: 32 bits)
; Output: X[0]-X[3] (Answer : 32 bits)
; W register will be broken.
;
; Allocations (MSB <-> LSB):
; X[3] X[2] X[1] X[0]
; Y[3] Y[2] Y[1] Y[0]
;-------------------------------------------------------------------------
sub_xy
; *** Subtract Y from X ***
MOV f Y+0, w ; Lower.
subwf X+0, f ;
MOV lw 1 ;
btfss status, c ; <- Positive if CF = 1.
subwf X+1, f ;
btfss status, c ;
subwf X+2, f ;
btfss status, c ;
subwf X+3, f ;
MOV f Y+1, w ; Middle lower.
subwf X+1, f ;
MOV lw 1 ;
btfss status, c ;
subwf X+2, f ;
btfss status, c ;
subwf X+3, f ;
MOV f Y+2, w ; Middle upper.
subwf X+2, f ;
MOV lw 1 ;
btfss status, c ;
subwf X+3, f ;
MOV f Y+3, w ; Upper.
subwf X+3, f ;
; *** Return from subroutine ***
return
;-------------------------------------------------------------------------
; General: Multiply. (32 by 32 bits)
; Input : X[0]- X[3] (Source : 32 bits)
; Y[0]- Y[3] (Destination: 32 bits)
; Output: EX[0]-EX[3] (Answer : 64 bits)
; X[0]- X[3]
; EY[0]-EY[3] (As same as X[0]-X[3])
上一页 [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单片机