Divide 16-bit by 8-bit

This subroutine will divide 16-bit value at r1:r0 with 8-bit value at r3. Result is 16-bit at r5:r4.
     (r1:r0)
        (r3)
    --------- :
     (r5:r4)

div16by8:
div8:
    clr     r2
    clr     r5 
    clr     r4 
    inc     r4 
div8a:
    clc     
    rol     r0
    rol     r1
    rol     r2
    brcs    div8b
    cp      r2,r3
    brcs    div8c 
div8b:
    sub     r2,r3
    sec     
    rjmp    div8d 
div8c:
    clc     
div8d:
    rol     r4 
    rol     r5
    brcc    div8a 
    ret