PIC Microcontoller Math Method

xByte Addition

From: Kevin Blain

;    Multi-byte add routine.
;    requires number of registers, start register address
;    affects w, FSR / INDF and status
;    result in N_hi and N_lo

    movlw    number_of_registers
    movwf    counter    ; used to count how many successive registers to add
together
    movlw    start_register_address
    movwf    fsr    ; used FSR and INDF to address successive memory
locations
    clrf    N_hi        ; start with zero in N_hi and N_lo
    clrf    N_lo
loop:
    movf    INDF,w    ; get latest byte to add in
    addwf    N_lo,f    ; add to low order byte
    skpnc        ; test carry, if set, increment the hi order byte
    incf    N_hi,f
    incf    FSR,f
    decfsz    counter    ; if counter is >1 then repeat loop
    goto    loop

; counter is zero, N_hi and N_lo contain reasult, w has changes tolast
value, FSR has last pointer
; total routine size 13 words.
; execution time 4+ (10 x number of resisters) cycles

Questions: