Здравствуйте, pullover, Вы писали:
P>P>split_digit:
P> clr r17
P>split_digit_loop:
P> cpi r16, 10
P> brlo split_digit_done
P> subi r16, 10
P> inc r17
P> rjmp split_digit_loop
P>split_digit_done:
P> ret
P>
Для определенных задач данный метод пойдет, но он имеет существенный недостаток: время вполнения линейно зависит от значения аргумента, где-то 6*N/10, т.е. уже для числа 100 это будет около 60 тактов. Ну если исключить подсчет частного, то 5*N/10.
Вообще в таких ситуациях необходимо рассматривать задачу более глобально: в чем (размер кода или скорость) требуется оптимизация и как будет использоваться результат. Если это например динамическая индикация на семисегментнике, то оптимальное решение может быть совсем другим.