Есть вариант сделать деление на 10 с остатком - на ассемблере не сложно реализовать, но как правильно?
Вот даже примерно набросал, как я себе это представляю. В t число, которое раскладываем. digH и digL - результат (2 цифры). Остальные регистры промежуточные.
Код: Выделить всё
mov rx1,t ; реализуем деление
ldi rx2,0 ; счетчик десятков
ldi rx3,0 ; остаток
cln ; очистим negative флаг
l01:
mov rx3,rx1 ; остаток = числу
subi rx1,10 ; вычитаем из числа 10
brmi l02 ; если результат отрицателен - выходим
inc rx2 ; иначе увеличиваем десятки
rjmp l01 ; и зацикливаем
l02:
mov digH, rx2 ; забираем десятки
mov digL, rx3 ; забираем остаток
ret