PIC Microcontoller Math Method

Two's complemnt of a 32 bit word (4 bytes)

;unknown author, please step forward

        comf    var,f           ;Complement all bytes
        comf    var+1,f
        comf    var+2,f
        comf    var+3,f

        incf    var,f           ;Inc. low byte always
        skpnz                   ;Skip if no carry to higher bytes
        incf    var+1,f         ;Carry to next byte
        skpnz
        incf    var+2,f
        skpnz
        incf    var+3,f


Regulus Berdin says:  This reduces the number of execution cycles if some bytes are zero and called as subroutine.

negate: 
        comf    var,f 
        comf    var+1,f 
        ... 

        incfsz  var,f 
         return 
        incfsz  var+1,f 
         return 
        ... 

        incf    var+N,f 
        return