;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Resta de 32 bit - 32 bit con CARRY
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Variables a definir en la RAM
CARRY EQU .32
DATO1 EQU .33 ; dato 1 (8 bits + significativos)
DATO2 EQU .34 ;
DATO3 EQU .35 ;
DATO4 EQU .36 ; dato 1 (8 bits - significativos)
FUNC1 EQU .37 ; dato 2 (8 bits + significativos)
FUNC2 EQU .38 ;
FUNC3 EQU .39 ;
FUNC4 EQU .40 ; dato 2 (8 bits - significativos)
RES1 EQU .41 ; resultado (8 bits + significativos)
RES2 EQU .42 ;
RES3 EQU .43 ;
RES4 EQU .44 ; resultado (8 bits - significativos)
;.............................................................................
RESTA ;32 - 32
clrf CARRY
comf DATO4,W
addwf FUNC4,W
movwf RES4
btfsc STATUS,C
incfsz FUNC3,F
goto IOP1
incfsz FUNC2,F
goto IOP1
incfsz FUNC1,F
goto IOP1
bsf CARRY,0
IOP1
comf DATO3,W
addwf FUNC3,W
movwf RES3
btfsc STATUS,C
incfsz FUNC2,F
goto IOP2
incfsz FUNC1,F
goto IOP2
bsf CARRY,0
IOP2
comf DATO2,W
addwf FUNC2,W
movwf RES2
btfsc STATUS,C
incfsz FUNC1,F
goto IOP3
bsf CARRY,0
IOP3
comf DATO1,W
addwf FUNC1,W
movwf RES1
btfsc STATUS,C
bsf CARRY,0
bcf STATUS,C
btfss CARRY,0
bsf STATUS,C
comf RES4,F
comf RES3,F
comf RES2,F
comf RES1,F
return
;.............................................................................