🇩🇪
sub1:
MOVLB eephigh ;Bank auswählen
movff eephigh,sub ;eephigh soll nicht überschrieben werden: sichern
movf adclow,W,BANKED ;adclow in WREG
subwf eeplow,F,BANKED ;eep minus adc (WREG),ergebnis in F-REG! -WREG?
movf adchigh,W,BANKED ;adchigh in WREG
subwfb eephigh,F,BANKED ;eeprom minus adc (WREG),ergebnis in F-REG! - WREG?
return
sub1:
MOVLB eephigh :Bank auswählen
movff eephigh,sub ;eephigh soll nicht überschrieben werden: sichern
movf adclow,W,BANKED ;adclow in WREG
subwf eeplow,W,BANKED ;eep minus adc (WREG),ergebnis in WREG
bnc sub2 ;wenn positiv nach sub2
decf eephigh,F,BANKED ;ist negativ: für nächsten substract negativer
;übertrag in eephigh
sub2:
movf adchigh,W,BANKED ;adchigh in WREG
subwf eephigh,W,BNKED ;eeprom minus adc (WREG),ergebnis in WREG
;movff sub,eephigh ;eephigh zurück sichern
return
movf SourceL,W
subwf DestL
movf SourceH,W
btfss STATUS,C
incfsz SourceH,W
subwf DestH