Divide 24-bit by 24-bit

This subroutine will divide 24-bit value at r20:r19:r18 with 24-bit value at r23:r22:r21. Result is 24-bit at r20:r19:r18 and remainder is 24-bit at r2:r1:r0.

    (r20:r19:r18)
    (r23:r22:r21)
    -------------:
    (r20:r19:r18)    remainder: (r2:r1:r0)

div24by24:
    clr     r0       
    clr     r1   
    clr     r2       
    ldi     r16,24       
    lsl     r18   
    rol     r19   
    rol     r20       
    rol     r0       
    rol     r1   
    rol     r2       
    cp      r0,r21   
    cpc     r1,r22   
    cpc     r2,r23   
    brcs    PC+5       
    inc     r18       
    sub     r0,r21   
    sbc     r1,r22   
    sbc     r2,r23   
    dec     r16   
    brne    PC-15       
    ret