;a ist immer 24 bit groß ;b kann zwischen 1-20bit breit sein .def a0 =r16 .def a1 =r17 .def a2 =r18 .def b0 =r19 .def b1 =r20 .def b2 =r21 .def r0 =r22 .def r1 =r23 .def r2 =r24 .def e0 =r25 .def e1 =r26 .def e2 =r27 .def z =r28 ;+++++++++++++++++++++++++++++++++++++++ Start: ldi z,24 tst b2 breq div16 div_24: lsl a0 rol a1 rol a2 rol r0 rol r1 rol r2 lsl e0 cp r2,a2 brlo null_24 cp r1,a1 brlo null_24 cp r0,a0 brlo null_24 sbr e0,1 sub r0,a0 suc r1,a1 suc r2,a2 null_24: dec z brne div_24 jmp ende div16: tst b1 breq div_8 div_16: lsl a0 rol a1 rol a2 rol r0 rol r1 lsl e0 rol e1 cp r1,a1 brlo null_16 cp r0,a0 brlo null_16 sbr e0,1 sub r0,a0 suc r1,a1 null_16: dec z brne div_16 jmp ende div_8: lsl a0 rol a1 rol a2 rol r0 lsl e0 rol e1 rol e2 cp r0,a0 brlo null_8 sbr e0,1 sub r0,a0 null_8: dec z brne div_24 jmp ende ende: