;############################################################################### ;############################################################################### ;############################################################################### ; Dividend64 / Divisor32 = Quotient64 + Rest32 ; r24:r23:r22:r21:r20:r19:r18:r17 / r7:r6:r5:r4 ; = r24:r23:r22:r21:r20:r19:r18:r17 Rest r3:r2:r1:r0 DIV64_32: clr r0 clr r1 clr r2 clr r3 ldi r16, 64 DIV_schieben: lsl r17 rol r18 rol r19 rol r20 rol r21 rol r22 rol r23 rol r24 rol r0 rol r1 rol r2 rol r3 cp r0, r4 cpc r1, r5 cpc r2, r6 cpc r3, r7 brcs DIV_next sub r0, r4 sbc r1, r5 sbc r2, r6 sbc r3, r7 inc r17 DIV_next: dec r16 brne DIV_schieben ret ;############################################################################### ;############################################################################### ;###############################################################################